2017-09-07 75 views
1

建议在捕获组内使用锚定器吗?我试图用该模式来模拟lookbehind操作来匹配行开始或空白。在JavaScript中是(^ | s)有效的正则表达式吗?

例如,要匹配行首或空白后面的#标签,他们会结束行或者后面有空白,是否有更好的方法来做到这一点?

(^|\s)#([\w]+)($|\s) 

为了简单起见,我留下了非捕获组。

+1

欢迎来到SO!请提供一些(更多)代码,以便我们能够帮助您 - 否则:这取决于... – Jan

+0

我只会保留原样或将其更改为'(^ | \ s)#([\ w] +)(?!\ S)' – sln

回答

0

在你的情况下(^|\s)是需要在组内,因为它在变化中使用。
它说BOS 空白,但不是两者。

Fwiw,(^|\s)是一个典型的空白边界,它不需要组。
这是相当于(?<!\S)

但JS不支持查看断言,所以你不得不离开它。

另一方(\s|$)它将是(?!\S)它使用JS支持的预见断言。

相关问题