看板 RegExp 關於我們 聯絡資訊
我想要擷取如下的字串,抓出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)
salagadoola:用兩行? if ($str =~ /^style=\{(\d+(,\d+)*)\}$/) { 09/14 08:05
salagadoola:@arr = $1 =~ /\d+/g; print "@arr" } 09/14 08:05
salagadoola:(不過如果寫兩行,那//g的地方乾脆用split就好了) 09/14 08:07
thitbbeb:/^style=\{(\d+)(,(\d+))*,?\}$/ 09/22 21:45