簡體   English   中英

正則表達式:不要將字符串與目標單詞前面的單詞匹配

[英]Regex: Do not match string with words preceding target word

如何找到目標詞的正則表達式匹配項,但是如果該目標詞前面帶有否定詞(例如“ not”),則不會給出匹配項。

否定詞必須在目標詞之前的一定范圍內,因此對於另一個否定它不會向后看

例:

Target = 'word'

+------------------------------------------+-------------+
| 'bananas is a word'                      | match       |
| '76 is not a word'                       | NOT a match |
| '76 is not a word but bananas is a word' | match       |
+------------------------------------------+-------------+

注意:

'76 is not a word but bananas is a word'包含不能不 匹配 這就是為什么我不能使用^$

理想情況下,我可以包含多個否定詞,因此正則表達式如下所示:

.{1,25}(?<!(isn't|not).{1,10}) word

如果該模式始終遵循以下內容:

bananas is a word
76 is not a word
76 is not a word but bananas is a word
bananas is a word but 76 is not a word
bananas is a word and bird is a word
76 is not a word and 86 isn't a word either

那么您可以使用以下正則表達式:

([a-zA-Z0-9]*)\sis(?!'nt|\snot)\sa\sword

請注意,同時使用捕獲組和非捕獲組,以確保isn'tis not被正確排除在匹配之外。

Regex101中的小提琴

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM