regex: совпадать с отрицанием набора случайных пробелов до и после символа «комментарий» - PullRequest
0 голосов
/ 06 марта 2019

Я ищу регулярное выражение (не) совпадающее с символом комментария, заключенное в произвольные пробелы

Например, с '#' в качестве символа комментария:

строки должны совпадать:

 code line here
   code line here

строк должно быть не соответствует:

 #code line here
 # code line here
   #   code line here

Итак, что-то вроде отрицания множества (ноль / * пробелы # ноль / * пробелы)

 ^(\s#\s)

Ответы [ 3 ]

2 голосов
/ 06 марта 2019

Следующее регулярное выражение будет соответствовать строкам, которые не имеют символа "#"

^((?!^\s+#).)*$
1 голос
/ 06 марта 2019

Для ваших данных в качестве примера, если поддерживается предпросмотр, вы можете использовать отрицательный прогноз, чтобы утверждать, что с самого начала строки то, что справа, не является 0+ раз символом пробела, за которым следует #.

Если это так, сопоставьте всю строку.

^(?!\s*#).+$

Это будет соответствовать:

  • ^ Начало строки
  • (?! Отрицательный взгляд вперед
    • \s*# Соответствие 0+ раз символу пробела, затем #
  • ) Закрыть взгляд вперед
  • .+ Соответствует любому символу кроме символа новой строки 1+ раз
  • $ Конец строки

regex101 demo

1 голос
/ 06 марта 2019

Может быть что-то не оптимизировано, но попробуйте это:

^[^#]*(?!\s*#).

Это позволит получить все символы в начале строки, за которыми не следует комбинация spaces + #.

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