正则表达式返回两个单词之间的多行 - Powershell

正则表达式返回两个单词之间的多行 - Powershell

我正在尝试使用以下正则表达式:

(?<=----Old-------\n)(((.+\n)+)\n*?)(?=__________________________________________)

获取多行投注

----Old-------
250096 - LT Security Role: Read Only, 250032 - Sales VIC3, 250083 -
Security Role: Base Security Role, 250080 - Security Role: Payment
Allocation, 250058 - Security Role: TFM Sales Consultant, 250103 - Web
Fleet SuperUser

但是选择字符串没有返回任何内容。

我用了https://regex101.com/https://www.regexpal.com/并且正则表达式按预期工作。

能否请你帮忙。

$ModifyOldRegex = "(?<=----Old-------\n)(((.+\n)+)\n*?)(?=__________________________________________)"    
$Description | Select-String  -Pattern $ModifyOldRegex.matches.Value

在此处输入图片描述

答案1

最后我发现了问题:

1- 使用 get-Content -Raw 使 \n 工作 // 我不确定为什么

2- 将正则表达式更改为

“(?<=----旧-------)((.+\n)+)(?=__________________________________________)”

相关内容