作者worldxxi (林小弟)
看板RegExp
标题[问题] 群组撷取的数量最多只能等於括号数目?
时间Fri Aug 20 15:06:51 2010
我想要撷取如下的字串,抓出style集合内的数字,但集合内的元素数量
不是固定的而且要避免style={13,4,}这种不完全的形式:
style={12113,124,1}
我使用了这样的正规表示:
/^style=\{(\d+)(,(\d+))*\}$/
--------
这边用了两个括号是为了要让逗号後面紧接数字
,可是感觉很蠢,有其他指定顺序的写法吗?
但似乎只能取得头尾的元素,像上面那个例子,元素124就会抓不出来,
我猜测是被元素1盖掉了,请问我应该怎麽修改才能抓取不定数量的群组呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.96.92.38
※ 编辑: worldxxi 来自: 140.96.92.38 (08/20 15:24)
1F:推 salagadoola:用两行? if ($str =~ /^style=\{(\d+(,\d+)*)\}$/) { 09/14 08:05
2F:→ salagadoola:@arr = $1 =~ /\d+/g; print "@arr" } 09/14 08:05
3F:→ salagadoola:(不过如果写两行,那//g的地方乾脆用split就好了) 09/14 08:07
4F:→ thitbbeb:/^style=\{(\d+)(,(\d+))*,?\}$/ 09/22 21:45