Я хочу извлечь содержимое между abc {
и }
.
$s = 'abc {
123
}'
$s -match 'abc {(.*?)' # true
$s -match 'abc {(.*?)}' # false, expect true
Тем не менее, кажется, что это не соответствует многострочному совпадению?
Я хочу извлечь содержимое между abc {
и }
.
$s = 'abc {
123
}'
$s -match 'abc {(.*?)' # true
$s -match 'abc {(.*?)}' # false, expect true
Тем не менее, кажется, что это не соответствует многострочному совпадению?
.
будет соответствовать только символам новой строки, когда вы выполняете операцию регулярного выражения в режиме SingleLine
.
Вы можете добавить параметр регулярного выражения в начале шаблона. с (?[optionflags])
:
$s -match 'abc {(.*?)}' # $False, `.` doesn't match on newline
$s -match '(?s)abc {(.*?)}' # $True, (?s) makes `.` match on newline