JavaScript正则表达式转换为Java正则表达式

JavaScript Regular Expression to Java Regular Expression

本文关键字:正则表达式 Java 转换 JavaScript      更新时间:2023-09-26

我有一小段用Javascript编写的遗物代码,扫描网页源并寻找模式。

我正在将功能迁移到Java程序中。所以,我的问题是我怎么能解析一个JavaScript正则表达式到java的某种查找和替换功能?

例如,我的JavaScript Regex当前读取(作为一个字符串)

RegEx = "/(''/addthis_widget''.(js|php)|''.addthis''.com''/js''/widget''.(js|php))/i";

我在stackoverflow上找到了这篇旧文章:

如何将javascript正则表达式转换为安全的java正则表达式?

,这表明这样做是可行的:

strOutput.replace("/{{[^]*?}}/g","");

但是,这似乎不够健壮,并且不能生成编译器可以识别的RegEx。

去掉开头的/和结尾的/i。在开头添加(?i)

Java不使用/expr/options格式。/expr/G将被'G边界匹配取代,但在java中你通常只调用matcher.find()多次,它会自动开始搜索前一个匹配的末尾,使'G毫无意义。

将所有''/更改为/,正斜杠不需要转义