Регулярное выражение для соответствия любой пустой строке или любой строке, начинающейся с указанного символа - PullRequest
1 голос
/ 04 февраля 2010

С учетом следующего ввода ...

;
; comment
; another comment
;

data
data

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

Спасибо.

Ответы [ 3 ]

3 голосов
/ 04 февраля 2010

Редактировать

Подождите, я думаю, я понимаю, что вы имеете в виду: вы хотите сохранить разрывы строк только после ваших строк данных. Если это так, попробуйте:

(?m)^([ \t]*|;.*)(\r?\n|$)

Небольшое объяснение:

(?m)          # enable multi-line option
^             # match the beginning of a line
(             # start capture group 1
  [ \t]*      #   match any character from the set {' ', '\t'} and repeat it zero or more times
  |           #   OR
  ;           #   match the character ';'
  .*          #   match any character except line breaks and repeat it zero or more times
)             # end capture group 1
(             # start capture group 2
  \r?         #   match the character '\r' and match it once or none at all
  \n          #   match the character '\n'
  |           #   OR
  $           #   match the end of a line
)             # end capture group 2
1 голос
/ 04 февраля 2010
"(^;.*$) | (^[\s\t\r\n]*$)"

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

1 голос
/ 04 февраля 2010

Для этого можно заменить ^\s*($|;.*) пустой строкой.

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