如何在正则表达式 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)
使用标志进行高级搜索
正则表达式有五个可选标志,允许全局搜索和不区分大小写的搜索。这些标志可以单独使用,也可以按任意顺序一起使用,并作为正则表达式的一部分包含在内。