同时使用前瞻和后面的正则expression式
我有一个问题,使用下面的正则expression式。 它在regexr和rubular中工作正常,但在node.js上运行时会出现错误。 我是相当新的使用正则expression式,我不知道我做错了什么。 如果我剔除(?<= )
那么它将起作用,所以我认为这是问题所在。
我试图匹配“是”与前导和尾随空间使用/(?<= )is(?= )|==/g
testing词的例子:
http://regexr.com?33781
节点错误输出
temp = temp.replace(/(?<= )is(?= )|==/g, '==='); ^ SyntaxError: Invalid regular expression: /(?<= )is(?= )|==/: Invalid group at new RegExp (unknown source)
JavaScript的正则expression式根本不支持向后看。
资料来源:
- http://www.regular-expressions.info/lookaround.html#limitbehindand
- http://www.regular-expressions.info/javascript.html
- https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions
但是, 在某些情况下可以伪造 。
很简单,这是因为JavaScript正则expression式不支持lookbehinds:
http://www.regular-expressions.info/javascript.html
Lookbehind根本不被支持。 Lookahead完全支持。