作者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