2 Stimmen

Regex ist es möglich, eine Zeile abzugleichen, die das gleiche Wort nirgendwo in der Zeile wiederholt enthält?

Wie man eine Zeile auswählt, die ein Wort enthält, aber nicht wiederholt wird. sagen wir, ich suche nach dem String word1

text word1 text #übereinstimmend

text word1 text word1 #keine Übereinstimmung, weil word1 sich wiederholt.

word1 word1 word1 #keine Übereinstimmung, wird wiederholt

word1 #übereinstimmend

text text text text word1 # übereinstimmend

kann mir jemand helfen, wie man einen Regex entwickelt, um diese Zeilen abzugleichen??

1voto

Bohemian Punkte 386825

Versuchen Sie dies:

(\b\w+\b)(?!.*\1)

Es verwendet einen negativen Look-Ahead auf eine Rückreferenz zu einem erfassten Wort

1voto

Anirudha Punkte 31755

Sie können auch versuchen

 ^(?!.*(\bword1\b).*\b\1\b).*\bword1\b.*$

hier word1 kann durch \w+ ersetzt werden, wenn Sie jedes Wort übereinstimmen möchten..

verwenden Sie es mit der multiline Option

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X