Как RegEx соответствует двойному подчеркиванию, но не одиночному (__ не _) - PullRequest
2 голосов
/ 19 июня 2019

Я работаю над правилом stylelint для модифицированного BEM, который по существу говорит, что одно подчеркивание недопустимо, но двойное подчеркивание - это.

регистр соответствия:

  • foo__bar

несоответствующие случаи:

  • foo_bar

  • foo_bar__baz

Я бы (в идеале) хотел бы не просто фрагмент рабочего кода, а объяснение того, как подобную проблему лучше всего решить, используя только JavaScript RegEx

Вот соответствующие документыдля stylelint: https://stylelint.io/user-guide/rules/selector-class-pattern/

Вот набор тестов, который нужно будет пройти: https://regex101.com/r/NjwOa3/3/tests

1 Ответ

3 голосов
/ 19 июня 2019

Вы можете попробовать регулярное выражение, как показано ниже.

^[^_]*_{2,2}[^_]*$

или попробуйте это для сопоставления только двойных подчеркиваний.

_{2,2}
...