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