beginnt Ich habe wirklich eine harte Zeit, eine Regex zu erstellen, die ein Wort findet, aber wenn und nur wenn es die Zeile nicht beginnt mit - .Regex, um Wörter zu finden, die in einer Zeile sind, die nicht mit
Zum Beispiel:
Geben Sie für Wort: wenn
-- check if //should not match
-- more random words if //should not match
check if //should match
ich versucht habe, mit negativen Lookbehinds wie:
(?<!-- .*)\bif\b
Aber ich bin mit JAVA und auch, kann ich nicht verwenden Quantifizierer in Lookbehinds.
Wenn ich versuche,
(?<! --)\bif\b
Es funktioniert auf
-- if \\works
-- if \\does not work
ich die Verwendung von SKIP und F fand heraus, aber, so scheint es JAVA nicht diese beiden gerecht zu werden.
Irgendwelche Ratschläge, wie kann ich damit umgehen?
Danke!
Was ist los mit '! Line.startsWith (" - ") && line.matches (" \\ bif \\ b ")'? Gibt es einen guten Grund, alles komplizierter zu machen, indem Sie darauf bestehen, dass Sie alles mit einer Regex machen müssen? – ajb
Hi @ajb, ich habe einen mehrzeiligen Text mit mehreren Wörtern zu entsprechen. Ich habe bereits eine Schleife, die alle Wörter durchläuft, die ich zuordnen muss. Ich benutze text.replaceall, so dass ich nicht den gesamten Text nach \ n aufteilen und jede Zeile durchlaufen muss, während ich durch jedes Keyword, das ich zuordnen muss, iteriere. –
@Takeshi Der Kommentar von ajb ist Spot auf AFAIK. Die Regex, die Sie benötigen, wäre wahrscheinlich komplex, während die Verwendung von Java-String-Operationen einfach und einfacher zu verwalten wäre. –