我有一个正则表达式,可以在php的字符串中找到给定单词'on'的下一个单词:
(?<=\bon\s)(\w+)
它适用于PHP,但对于js,它会出现以下错误:
Uncaught SyntaxError:无效的正则表达式:/(?&lt; = \ bon \ s)(\ w +)/: 无效的群组
javascript的等效正则表达式是什么?
答案 0 :(得分:2)
(?<=\bon\s)
是positive lookbehind。 PHP的正则表达式引擎(PCRE)支持这些,但JavaScript的正则表达式引擎不支持。
虽然不可能编写完全相似的正则表达式,但您仍然可以使用以下正则表达式实现此目的:
\bon\s(\w+)
与原始正则表达式不同,\bon\s
会消耗字符。但您仍然可以使用捕获组(\w+)
提取结果。
用法:
var str = 'foo on bar';
var matches = str.match(/\bon\s(\w+)/);
var result = matches[1] // bar
答案 1 :(得分:1)
正如Amal Murali解释的那样,没有与Javascript正则表达式相当的东西。但是你可以写:
\bon\s(\w+)
并提取第一个捕获组。