Regex Powershell正则表达式多行查找和替换
我有一个问题非常类似于,但我似乎无法让我的表达发挥作用。就像另一个问题一样,我需要解析一个文件并替换我想要的东西。我的问题是,我要查找的不是固定字符串,而是多行日志条目,如下所示:Regex Powershell正则表达式多行查找和替换,regex,powershell,Regex,Powershell,我有一个问题非常类似于,但我似乎无法让我的表达发挥作用。就像另一个问题一样,我需要解析一个文件并替换我想要的东西。我的问题是,我要查找的不是固定字符串,而是多行日志条目,如下所示: $log_number $entry $tag 我需要用一个新字符串替换每个条目和一个选定的标记。到目前为止我有 (Get-Content $($parent_dir + $old_name + ".log")) | Out-String | ForEach-Object {$_ -replac
$log_number
$entry
$tag
我需要用一个新字符串替换每个条目和一个选定的标记。到目前为止我有
(Get-Content $($parent_dir + $old_name + ".log")) |
Out-String |
ForEach-Object {$_ -replace "", "This is a test"} |
Set-Content $($parent_dir + $new_name + ".log")
但是我似乎找不到一个正则表达式查询可以匹配我正在寻找的格式。我试图修改我在这个问题上找到的一个:
但这似乎不起作用。我完全被难住了,任何帮助都将不胜感激
例如:
39983
"set x 1"
random_user
39984
"set x 45"
S0B0L
39985
"set x 23"
random_user
变成:
39983
"set x 1"
random_user
This is a test
39985
"set x 23"
random_user
我几乎可以肯定问题出在你的正则表达式上,它只查找数字和空格2次,然后是任何字符,包括换行符,然后是
S0B0L
与三行文本条匹配的正则表达式,第一行由数字组成,第三行为S0B0L
:
(?i)[0-9]+[\r\n]+.*[\r\n]+S0B0L
请参阅。谢谢!此外,该演示网站是了不起的。
(?i)[0-9]+[\r\n]+.*[\r\n]+S0B0L