如何将 Java Regex 转换为 JavaScript regex



如何在正则表达式 JavaScript 中转换正则表达式 java

例如,我有文字: #hello 一些文本 #Home

我的 Java 正则表达式是

String regex = "[#]+[A-Za-z0-9-_]+\b";
Pattern tagMatcher = Pattern.compile("[#]+[A-Za-z0-9-_]+\b");

结果是 #hello 和 #Home

我的Javascript代码是:

var myRegExp = new RegExp("[#]+[A-Za-z0-9-_]+\b");
var tagMatcher = text.match(myRegExp);

但结果是:

#hello

如何解决问题?

我的错误在哪里?

缺少全局标志g以获取整组匹配项。

var text = "#hello some text #Home";
var myRegExp = new RegExp("[#]+[A-Za-z0-9-_]+\b", "g");
var tagMatcher = text.match(myRegExp);
console.log(tagMatcher)

就像@JordanRunning提到的,你可以使用正则表达式文字如下,以及更短的方法:

var text = "#hello some text #Home";
var tagMatcher = text.match(/#+[w-]+b/g);
console.log(tagMatcher)

使用标志进行高级搜索

正则表达式有五个可选标志,允许全局搜索和不区分大小写的搜索。这些标志可以单独使用,也可以按任意顺序一起使用,并作为正则表达式的一部分包含在内。

最新更新