【发布时间】:2023-01-12 00:53:47
【问题描述】:
我创建了一个这样的文件
echo "test 1", Hello, foo, bar, world, "test 2" > test.txt
结果是这样的:
test 1
Hello
foo
bar
a better world
test 2
我需要删除所有以关键字“Hello”开头并以“world”结尾的文本,包括这两个关键字。
像这样的东西
test 1
test 2
我试过了
$pattern='(?s)(?<=/Hello/\r?\n).*?(?=world)'
(Get-Content -Path .\test.txt -Raw) -replace $pattern, "" | Set-Content -Path .\test.txt
但什么也没发生。 我可以尝试什么?
【问题讨论】:
-
看起来你可以用
-replace '(?s)\s*Hello.*world'来做 -
@Leo 你的帖子说“文字之间关键词”,请update your question反映你真正想要的
-
干得好,@Santiago - 我建议将其作为答案发布(唯一值得一提的考虑因素是
.*是否应该贪婪)。 -
谢谢@mklement0 但老实说我仍然不清楚 OP 想要什么
-
@MathiasR.Jessen,抱歉,我很困惑:是的,我的回答删除了关键字,因为我相信这是 OP 的意图(“包括两个关键字”)。
标签: regex string powershell