REGEX найти конкретную подстроку, если не часть слова - PullRequest
0 голосов
/ 25 мая 2018

У меня проблемы с упрощением регулярного выражения, которое я создал:

@"^sept$|[^a-zA-Z]sept[^a-zA-Z]]|[^a-zA-Z]sept$|^sept[^a-zA-Z]"

Это регулярное выражение должно найти подстроку sept , которая не является частью какого-либо слова (например, сентябрь), якогда можно найти слово, можно получить несколько вариантов, например:

сент

1009 * 1 сен

сент1

1 септ1

сент

... и т. Д.

В моем шаблоне я ищу sept, который не начинается / заканчивается на букву (поэтому он не является частью другого слова) и может находиться в начале / концестрока.Я проверил функциональность, и она отвечает моим потребностям, но мне интересно, есть ли лучший / более простой способ написать это.

Ответы [ 2 ]

0 голосов
/ 25 мая 2018
[a-zA-z0-9]*(sept|SEPT)[a-zA-z0-9]*

Попробуйте приведенное выше регулярное выражение.

0 голосов
/ 25 мая 2018

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

(^|[^a-zA-Z])sept($|[^a-zA-Z])

Но это также может потенциально соответствовать одному символу с каждой стороны sept.Чтобы избежать этого, вы можете использовать обходные пути, предполагая, что ваш вкус регулярных выражений поддерживает их:

(?<=^|[^a-zA-Z])sept(?=$|[^a-zA-Z])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...