![](/img/trans.png)
[英]Matching balanced parenthesis in Ruby using recursive regular expressions like perl
[英]Ruby regular expressions: negative matching
我想知道是否有可能對整個單詞使用否定匹配,以便[^(<em>.*?<\\/em>)]
東西可以匹配除 (包括) <em>...</em>
之間的文字以外的所有內容<em>...</em>
。
我當時正在考慮使用負前瞻,但我認為這不會起作用,因為我還需要檢查開頭的<em>
。
當然,我可以只使用正則表達式,然后從原始文本中減去匹配項,但是我正在尋找更“優雅”的解決方案。
感謝任何幫助
String#split
用作否定匹配。 它返回不匹配正則表達式的任何部分的數組。
'XXXXXXXX<em>YYYYYYY</em>ZZZZZZZZ'.split(%r|<em>.*?</em>|)
# => ['XXXXXXX', 'ZZZZZZZZ']
如果想將其返回為字符串,只需join
。
'XXXXXXXX<em>YYYYYYY</em>ZZZZZZZZ'.split(%r|<em>.*?</em>|).join
# => 'XXXXXXXZZZZZZZZ'
環顧四周的整個過程是,它不消耗任何輸入。 如果要匹配模式以外的所有內容,則意味着要匹配該模式的前綴和后綴。 為了匹配后綴,您可能想要消耗---並丟棄-不需要的模式。 但是負面的前瞻並沒有消耗。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.