Извлечь строку из многострочной строки - PullRequest
0 голосов
/ 03 января 2019

Я хочу извлечь содержимое между abc { и }.

$s = 'abc {
    123
}'
$s -match 'abc {(.*?)' # true
$s -match 'abc {(.*?)}' # false, expect true

Тем не менее, кажется, что он не соответствует многострочному сопоставлению?

1 Ответ

0 голосов
/ 03 января 2019

. будет соответствовать только символам новой строки, когда вы выполняете операцию регулярного выражения в режиме SingleLine.

Вы можете добавить параметр регулярное выражение в начале вашего шаблона с помощью (?[optionflags]):

$s -match 'abc {(.*?)}'       # $False, `.` doesn't match on newline
$s -match '(?s)abc {(.*?)}'   # $True, (?s) makes `.` match on newline
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...