0

在 JavaScript 中使用特定的正则表达式时,我有一个非常奇怪的效果。如果我使用/^|.+/gm,它总是会跳过一行的第一个字符。

根据 regex101.com,它不会发生在 pcre (php) 中,但会发生在 JavaScript、Python 和 GoLang 中。关于为什么会发生这种情况的任何想法?

4

1 回答 1

2

在 Javascript 中,空匹配仍然会将字符串中正在搜索的当前索引加一。如果从字符串中的位置 X 开始匹配任何内容,则下一个匹配必须至少从位置 X + 1 开始。(PCRE 不会表现出这种行为;不消耗任何字符的空匹配允许立即进行额外的非空匹配在那个空匹配之后)

于 2018-12-09T22:53:20.360 回答