Ich habe seit Ewigkeiten mit dieser Regex in Java zu spielen und kann nicht an die Arbeit:Java Regex ersetzen alle alle Worte nicht ersetzen
(?:^|)(?:the|and|at|in|or|on|off|all|beside|under|over|next)(?: |$)
Die folgende:
pattern.matcher("the cat in the hat").replaceAll(" ")
gibt mich cat the hat
. Ein anderes Beispiel ist , was mir cat of next hat
gibt.
Gibt es eine Möglichkeit, wie ich diesen Regex-Ersatz arbeiten kann, ohne sie in mehrere separate Regexes für jedes Wort zu zerlegen und eine Zeichenfolge wiederholt zu ersetzen? Ja
Sie könnten auch Match-Gruppen benötigen: '(\ b (?: | | | | | | – frhd
@frhd Die beste Lösung wäre dann, einfach die nicht erfassende Gruppe durch eine erfassende Gruppe zu ersetzen : '\ b (die | und | at | in | oder | on | off | alle | neben | unter | über | nächste) \ b' – sp00m
@ sp00m yep, diese Antwort sollte mit deinem Update aktualisiert werden. – frhd