[英]How to match repeating patterns containing special characters in Ruby using regex?
[英]How do I match capture multiple patterns using REGEX? (Ruby)
這是我嘗試使用ruby捕獲的測試字符串:
<?lang
this_should_be_captured();
and_also_this();
and_this();
?>
this text should NOT be captured
<?lang this_should_also_be_captured(); ?>
當我使用此正則表達式時:
(<\?lang(\n|.)*\?>)
如http://rubular.com/r/qSOOzq6HAx所示,該匹配項捕獲了所有內容(包括我不需要的部分:“不應捕獲此文本”)。
如何正確捕獲兩個不同的塊而不捕獲不需要的塊?
您可以使用多行模式使其更簡單。 您也不需要外部括號,因為這與整個匹配項相同,可以通過$~
獲得。 如果要捕獲<?lang ?>
內部的內容,則可以在其中放置括號。
/<\?lang(.*?)\?>/m
PS。
[ ]
代替括號( )
。 例如[\\n.]
(?: )
:),除非您需要引用內容,因為這樣會使內容比使用捕獲括號( )
更快。 例如, (?:\\n|.)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.