[英]Regex: How do you capture one group among multiple groups using regex? (in ruby)
我有兩組文字:
firstgroup
(some content)
endgroup
secondgroup
(some content)
endgroup
我試圖捕獲第一組(而不是第二組)。 我正在使用以下正則表達式:
firstgroup(.|\n)*endgroup
由於某種原因,該正則表達式同時選擇了第一組和第二組(可能是因為它查看了上面的最后一個“ endgroup”)。 有沒有辦法修改我的正則表達式,使我只選擇第一個組(而不選擇第二個組)?
您需要一個懶惰的量詞
/firstgroup\n(.*?)\nendgroup/m
盡快結束小組。 參見http://www.rubular.com/r/D6UkOnMYLj 。
(並且您可以使用/m
標志使.
匹配新行。)
string=<<EOF
firstgroup
(some content)
endgroup
secondgroup
(some content)
endgroup
EOF
puts string.split(/endgroup/)[0] + "endgroup"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.