如何将正则表达式java转换为正则表达式javascript
例如,我有这样的文本:#hello some text #Home
我的 Java 正则表达式是
String regex = "[#]+[A-Za-z0-9-_]+\\b";
Pattern tagMatcher = Pattern.compile("[#]+[A-Za-z0-9-_]+\\b");
Run Code Online (Sandbox Code Playgroud)
结果是#hello 和#Home
我的 JavaScript 代码是:
var myRegExp = new RegExp("[#]+[A-Za-z0-9-_]+\\b");
var tagMatcher = text.match(myRegExp);
Run Code Online (Sandbox Code Playgroud)
但结果是:
#你好
我该如何解决这个问题?
我的错误在哪里?
缺少全局标志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)Run Code Online (Sandbox Code Playgroud)
就像@JordanRunning提到的,您可以使用正则表达式文字,如下所示,以及更短的方法:
var text = "#hello some text #Home";
var tagMatcher = text.match(/#+[\w-]+\b/g);
console.log(tagMatcher)Run Code Online (Sandbox Code Playgroud)
正则表达式有五个可选标志,允许全局和不区分大小写的搜索。这些标志可以单独使用,也可以按任意顺序一起使用,并且作为正则表达式的一部分包含在内。
| 归档时间: |
|
| 查看次数: |
3756 次 |
| 最近记录: |