gpt4 book ai didi

java - 使用 Java 将 Javascript 字符串文字与特定关键字匹配的正则表达式

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:29:44 26 4
gpt4 key购买 nike

我正在尝试匹配 JS 代码块并使用 Java 提取包含给定关键字的字符串文字。

在尝试提出我自己的正则表达式来执行此操作后,我最终修改了这个通用的字符串文字匹配正则表达式(在 Java 中构建模式时使用的 Pattern.COMMENTS):

(["'])(?:\\?+.)*?\1

to the following

(["'])(?:\\?+.)*?keyword(?:\\?+.)*?\1

The test cases:

var v1 = "test";
var v2 = "testkeyword";
var v3 = "test"; var v4 = "testkeyword";

正则表达式正确地不匹配第 1 行并正确匹配第 2 行。

但是,在第 3 行中,它不仅匹配“testkeyword”,还匹配 block

"test"; var v4 = "testkeyword"

这是错误的 - 正则表达式匹配第一个双引号并且没有在第二个双引号处终止,一直到行尾。

有没有人知道如何解决这个问题?

PS:请记住,正则表达式必须正确处理字符串文字中转义的单引号和双引号字符(广义匹配器已经做到了)。

最佳答案

这个修改怎么样:

(?:
"
(?:\\"|[^"\r\n])*
keyword
(?:\\"|[^"\r\n])*
"
|
'
(?:\\'|[^'\r\n])*
keyword
(?:\\'|[^'\r\n])*
'
)

关于java - 使用 Java 将 Javascript 字符串文字与特定关键字匹配的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1109008/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com