3

私の問題は、文字列にリストした単語以外の単語が含まれている場合に一致させる必要があることです。

たとえば、私はこの承認されたリストを持っているかもしれません:

User1
User2

一致する必要があるものと一致しないものの2つの例を次に示します。

一致する必要があります(User3が承認されていないため):

User1
User2
User3

一致しないでください(リストされているすべての文字列が承認済みリストに含まれているため):

User1

ルックアラウンドアサーションを試しましたが、一致しようとするときに実際には文字を消費しないため、のような文字列を使用すると、のような"User1\r\nUser2"一致が得られ"ser1\r\n"ます。私が許容できると思う言葉以外に何か他の言葉があるかどうか知りたいです。

これを行うためにプログラミング言語を使用することはできません。プログラムに正規表現を渡すことだけが許可されています。言語はPerlになります。

4

3 に答える 3

5

あなた/\b((?!(User1\b|User2\b)).+?)\b/が探しているものはありますか?

\b単語の区切り、つまり単語と単語以外の文字の間のギャップ (ゼロ幅) を意味します。

?!負の先読みアサーション (ゼロ幅) を意味します。

.+?除外された単語に一致しないものをキャッチするために使用されています。

お役に立てれば。

于 2013-01-30T16:19:52.227 に答える
2
\b(?!(User1|User2))\w+\b

これは、「|」にリストされていない単語と一致する必要があります。区切りリスト

于 2013-01-30T16:27:58.453 に答える
0
/\b(?!User[12]\b)\w+/

anda-zA-Z0-9_以外の任意の単語 ( を含む文字列) と一致します。User1User2

于 2013-01-30T18:45:14.210 に答える