4

別の文字列の部分文字列でない場合にのみ、文字列を一致させる方法を探しています。

例:

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
4

3 に答える 3

2

問題は、自分のやり方で使用する場合、両方のアサーションが真でなければならないことです。代替を使用して、両方のアサーションが失敗した場合にのみ失敗するようにしますが、一方だけが失敗した場合は失敗しません。

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

ここでRegexrを参照してください

3番目の例にも4つの「b」が必要だと思います。

于 2012-08-13T10:12:04.067 に答える
0

これを行う場合:

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

そしてこれ:

a{4}b{4}c{4}
于 2012-08-13T09:57:45.007 に答える
0
perl -ne 'print if /bbbb/ && $_!~/aaaabbbbcccc/ ' your_input
于 2012-08-13T10:06:16.723 に答える