JavaScript正则表达式到Java正则表达式
我有一小段用Javascript编写的遗留代码,用于扫描网页源代码并查找模式
我正在将函数性迁移到Java程序。所以,我的问题是,如何用某种查找和替换函数将JavaScript正则表达式解析为java正则表达式
例如,我的JavaScript正则表达式当前读取(作为字符串)
RegEx = "/(\\/addthis_widget\\.(js|php)|\\.addthis\\.com\\/js\\/widget\\.(js|php))/i";
我在stackoverflow上发现了这篇旧帖子:
How to convert javascript regex to safe java regex?
哪些短棍表明这会起作用:
strOutput.replace("/{{[^]*?}}/g","");
但是,这似乎不够健壮,并且不会生成编译器可以识别的正则表达式
# 1 楼答案
移除开头的/和结尾的/i。 在开始处添加(?i)
Java不使用
/expr/options
格式/expr/G
将替换为\G边界匹配,但在java中,通常只需多次调用matcher.find()
,它将在前一个匹配的末尾自动搜索匹配,使\G变得毫无意义将所有
\\/
更改为/
,向前斜杠不需要转义