我有一小段用Javascript编写的遗物代码,用于扫描网页源并查找该模式。
我正在将functuanality迁移到Java程序。那么,我的问题是如何将JavaScript正则表达式解析为具有某种查找和替换函数的java正则表达式?
例如我的JavaScript Regex当前读取(作为字符串)
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","");
但是,这似乎不够强大,并且不会产生编译器可识别的RegEx。
答案 0 :(得分:1)
在开始时删除/,在结尾处删除/ i。 在开始时添加(?i)。
Java不使用/expr/options
格式。 /expr/G
将替换为\ G边界匹配,但在java中,您通常只需多次调用matcher.find()
,它将自动开始在上一个结束时搜索匹配,使\ G无意义。
将所有\\/
更改为/
,不需要转义转义斜杠。