zu entsprechen Ich versuche, Teile von JS-Code zu vergleichen und String-Literale, die ein bestimmtes Schlüsselwort enthalten, mit Java zu extrahieren.Regexp, um Javascript String-Literale mit einem bestimmten Schlüsselwort mit Java
Nach dem Versuch, mit meinem eigenen regexp zu kommen, dies zu tun, beenden ich diesen generali String-wörtliche Übereinstimmung mit regulärem Ausdruck Modifizieren bis (Pattern.COMMENTS verwendet, wenn die Muster in Java Aufbau):
(["']) (?:\\?+.)*? \1
auf dem
folgenden(["']) (?:\\?+.)*? keyword (?:\\?+.)*? \1
Die Testfälle:
var v1 = "test";
var v2 = "testkeyword";
var v3 = "test"; var v4 = "testkeyword";
Die regexp korrekt d oesn't Match Linie 1 und Linie passt richtig 2.
jedoch in Zeile 3, statt nur "testkeyword" passend, passt es die Chunk
"test"; var v4 = "testkeyword"
was falsch ist - die regexp entsprach dem ersten double quote und endete nicht beim zweiten doppelten Zitat und ging bis zum Ende der Zeile.
Hat jemand irgendwelche Ideen, wie man das beheben kann?
PS: Bitte beachten Sie, dass die Regexp innerhalb von String-Literalen (die der generalisierte Matcher bereits getan hat) korrekt geflüchtete Einzel- und doppelte Anführungszeichen behandeln muss.
Perfekt! Funktioniert wie benötigt! – niktech