Совпадение любого числа из девяти ди git, окруженного границами слов, но не тех, которым предшествует точка - PullRequest
5 голосов
/ 28 февраля 2020

У меня довольно подробное описание. c Regex. Мне нужна помощь в построении. Некоторые ограничения: не может быть многострочным и использует движок Go, поэтому не может использовать отрицательные взгляды.

Match any nine digit number surrounded by word boundaries, but not those preceded by a period.

123456789  Should match
 123456789  Should match
123456789. Should match

0.123456789  Should not match
.123456789  Should not match

https://regex101.com/r/aAd7nN/1

Пока у меня есть \b\d{9}\b, но, как вы увидите в примере с Regex101, он не работает, когда есть предыдущий период.

Спасибо!

Ответы [ 2 ]

4 голосов
/ 28 февраля 2020

Вы также можете использовать:

(?:^|\n|[^.])\b(\d{9})\b

и захватить группу захвата №1 для вашего матча.

Обновленная демонстрация регулярных выражений

3 голосов
/ 28 февраля 2020

Вы можете сопоставить то, что вам не нужно, и захватить в группе то, что вы хотите сохранить, используя чередование |

\.\d{9}\b|\b(\d{9})\b

Regex demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...