簡體   English   中英

如果不是另一個字符串的子字符串,如何匹配字符串?

[英]How to match string if not a substring of another string?

我正在尋找一種僅當它不是另一個字符串的子字符串時才匹配字符串的方法。

例:

I need to find if text contains string "bbbb" that is not part of a string "aaaabbbbcccc".

正則表達式應匹配字符串:

aaabbbbcccc
aaaabbbbccc
aaabbbbccc
bbbbcccc
aaaabbbb

但不匹配:

aaaabbbbcccc

我嘗試通過環顧四周做到這一點:

(?<!aaaa)bbbb(?!cccc)

但這不起作用。 僅匹配

aaabbbbccc

問題在於,如果您以自己的方式使用它,那么兩個斷言都必須為真。 使用更改使其僅在兩個斷言都失敗時才失敗,而在只有一個斷言時才失敗。

(?<!aaaa)bbbb|bbbb(?!cccc)

在Regexr上查看

我假設您的第三個示例也應該有四個“ b”。

如果您這樣做:

.{0,4}b{4}.{0,4}

然后這個:

a{4}b{4}c{4}
perl -ne 'print if /bbbb/ && $_!~/aaaabbbbcccc/ ' your_input

暫無
暫無

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

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