JSコードのチャンクをマッチさせ、Javaを使用して特定のキーワードを含む文字列リテラルを抽出しようとしています。へJavaを使用してJavascriptの文字列リテラルと特定のキーワードを一致させる正規表現
(["']) (?:\\?+.)*? \1
:
これを行うには、私自身の正規表現を思い付くしようとした後、私は(Javaでパターンを構築するときにPattern.COMMENTSを使用)この一般化文字列リテラルのマッチング正規表現を修正することになりました
(["']) (?:\\?+.)*? keyword (?:\\?+.)*? \1
次のテストケース:
var v1 = "test";
var v2 = "testkeyword";
var v3 = "test"; var v4 = "testkeyword";
正規表現は正しくDだけではなく、「testkeywordを」マッチングのoesn'tマッチライン1と正しくライン2
と一致した。しかし、3行目では、それは間違っているチャンク
"test"; var v4 = "testkeyword"
と一致する - 正規表現は、最初に一致しました二重引用符で終わり、2行目の二重引用符で終わらず、行末までずっと進んでいます。
これを修正する方法はありますか?
PS:Regexpは、文字列リテラル(一般化されたマッチャーが既に行ったもの)の中でエスケープされた一重引用符文字と二重引用符文字を正しく処理しなければならないことに注意してください。多くの改正後
パーフェクト!必要に応じて動作します! – niktech