【发布时间】:2018-12-27 05:49:52
【问题描述】:
我正在尝试在字符串中搜索一些数字并在每个数字之前插入一个新行,不包括第一个。
我似乎无法使用传统的正则表达式 \n 字符来插入换行符。如果我使用 PowerShell 转义字符,则集合中的正则表达式变量将被忽略。
对于给定的源字符串
$theString = "1. First line 2. Second line 3. Third line"
我想要的是:
1. 第一行 2. 二线 3. 第三行所以我尝试了这个正则表达式来找到数字 2 到 9 后跟一个句点和一个空格:
$theString = $theString -replace '([2-9]\. )','\n$1'
但这会产生:
1. 第一行\n2.第二行\n3.第三行所以我尝试使用 PowerShell 转义字符作为换行符并将其放在双引号内:
$theString = $theString -replace '([2-9]\. )',"`n$1"
但这会产生:
1. 第一行 第二行 第三行我尝试使用\r、\r\n、\`r、\`r\`n 等来强制换行,但在不失去包含当前正则表达式变量的能力的情况下无法实现。
【问题讨论】:
标签: regex powershell