Регулярное выражение без предварительного просмотра и обратного просмотра (пакет golang не позволяет этого) - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть рабочее регулярное выражение с отрицательным прогнозом и обратным просмотром (?:^_(?!_))(.*)(?:(?<!_)_$) для следующих случаев:

_john_              # matched
_status_            # matched
_aa_                # matched
_a_                 # matched
_john_smith_        # matched
_@_                 # matched
___test__           # not matched
__john_             # not matched
__john_smith_       # not matched
_john___            # not matched
_john_smith__       # not matched
__john__            # not matched
__john_smith__      # not matched
anything            # not matched

Я хочу сопоставить все случаи, которые начинаются и заканчиваются одним _, все остальныеслучаи не должны совпадать.

В golang пакет regexp не имеет функции просмотра и просмотра.Как перевести приведенное выше регулярное выражение в golang-совместимое?

Любая помощь очень ценится!

1 Ответ

0 голосов
/ 14 февраля 2019

Может работать что-то вроде следующего:

^_[^_]_$|^_[^_].*?[^_]_$

Пример :

https://regex101.com/r/2iuIgi/1

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