javascript регулярное выражение отрицательный вид сзади не совпадает в некоторых случаях - PullRequest
0 голосов
/ 28 января 2019

я использую узел 10.15

я хочу, чтобы выражение совпадало только со строкой 2, но не со строкой 1 и строкой 3

enter image description here

почемуэтот отрицательный взгляд позади не удался?

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

Ответы [ 3 ]

0 голосов
/ 28 января 2019

Поскольку вы используете отрицательный взгляд назад, вы должны быть на EcmaScript2018.

Вы должны поместить границу слова \b перед \d в вашем регулярном выражении, чтобы избежать частичного совпадения, а затем оно перестанет совпадатьтвоя первая строчкаПопробуйте это регулярное выражение,

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

Демо

0 голосов
/ 28 января 2019

Это довольно просто.Вы только должны гарантировать, что совпадению не предшествует цифра.

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

Это добавляет контраст вашему RegEx.См. RexEgg для подробностей

См. Здесь для примера онлайн

0 голосов
/ 28 января 2019

Добавьте цифру в негативном виде:

(?<!月|\d)\d+日(?!后)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...