Regex - сопоставить подстроку вне хэштегов (#) - PullRequest
2 голосов
/ 12 октября 2019

Взяв эту строку в качестве примера:

focus; focus # focus # focus focus

Если я хочу найти подстроку focus, мне нужноэтот результат (совпадения выделены жирным шрифтом):

фокус ; фокус # фокус # фокус фокус

Это насколько я получил: (?<!#)(focus)(?!#), демо здесь .
Этот шаблон, очевидно, не работает, потому что исключает подстроки рядом с #,Мне нужно, чтобы они тоже были включены.

Программно говоря, это то, что мне нужно:

if !(prefix == "#" && suffix == "#") {
    // Is a match
}

1 Ответ

2 голосов
/ 12 октября 2019

Вы можете использовать чередование:

(?<!#)focus|focus(?!#)

Обновленная демоверсия RegEx

Что означает совпадение focus, если перед ним не стоит # или за ним не следует#. Это пропустит focus, только если он имеет # с обеих сторон.

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