javascript regexp否定的lookbehind在某些​​情况下不匹配

时间:2019-01-28 12:41:59

标签: javascript node.js regex

我使用节点10.15

我希望表达式仅匹配第2行,而不匹配第1行和第3行

enter image description here

为什么这种负面的回望失败了?

(?<!月)\d+日(?!后)

3 个答案:

答案 0 :(得分:2)

在后面的负数后面添加一个数字:

[ 0, 2, 6 ]

答案 1 :(得分:2)

这很容易。您只需要保证匹配不以数字开头即可。

(?<!月|\d)\d+日(?!后)
------^^^

这与RegEx形成对比。有关详情,请参见RexEgg

See here for online example

答案 2 :(得分:1)

在使用负向后视时,您应该在EcmaScript2018上。

您应在正则表达式中的localStorage之前放置单词边界\b,以避免部分匹配,然后它将停止与第一行匹配。试试这个正则表达式,

\d

Demo