在JavaScript中使用特定的正则表达式时,我会产生非常奇怪的效果。如果我使用/^|.+/gm
,它将始终跳过一行的第一个字符。
根据regex101.com,pcre(php)不会发生这种情况,而JavaScript,Python和GoLang确实会发生这种情况。为什么会发生这种情况的任何想法?
答案 0 :(得分:2)
在Javascript中,空匹配静止增量在字符串中搜索的当前索引为1。如果从字符串中的位置X开始匹配任何内容,则下一个匹配必须至少从位置X + 1开始。(PCRE不会表现出这种现象;不使用任何字符的空匹配将被允许空匹配之后立即添加一个附加的非空匹配)