Ich möchte einen regulären Ausdruck verwenden, um Vorkommen zu finden. Zum Beispiel geben Benutzer folgendes ein:Suchen nach Vorkommen mit regulärem Ausdruck (Java-Engine)
word1 code1 -10001! keine
das bedeutet: Such word1 UND code1 UND -10.001 UND NICHT keine
Dieses Kriterium verwendet werden, einen regulären Ausdruck zu bauen.
ich solche Textzeilen haben: - „world12 einschließlich ist GCode10 -10.001“
1 „Meine übliche word12 einschließlich ist GCode10 -10.001 Aufzeichnungsende“ // Dies sollte wahr sein und zurück
2 - "Dies ist eine andere Linie word12 wird einschließlich GCode10 -10.001 keine End of record" // Diese falsch sein sollte und das Rück nichts
Ich versuchte dies:
^(?=.*?word1)(?=.*?code1)(?=.*?-10001)((?!none).)*$
Es funktioniert für 1 Zeile, aber es zurückgeben ganze Linie
ich habe auch versucht diese:
(\\w*word1\\w*).*(\\w*code1\\w*).*(\\w*-10001\\w*)(?!none)
Aber es gab mir nur "word12", "GCode10", aber es verpasste "-10001" und außerdem passt es für die zweite Zeile! Es sollte nicht.
Ich bin kein Experte in regexp ...
'logged' wurde nicht in Ihrer Frage erwähnt, aber Sie scheinen in Ihrer Regex mit negativen Lookahead zu verwenden. – anubhava
Entschuldigung, ein Fehler ... – Zamboo
Haben Sie daran gedacht, eine einfache Schleife zu verwenden, um nach diesen Dingen zu suchen? Was passiert, wenn der Benutzer 'word *' eintippt? –