【发布时间】:2020-08-11 15:59:36
【问题描述】:
我有这个sn-p的代码
Get-Content -Tail 0 -Wait -Encoding "UTF8" $log |
Select-String "GroupEvents: Linedup for group “(.*)”, subgroup" |
% {$_.matches.groups[1].value} |
Write-SlowOutput -outputFile $output -waitFor $delay
Select-String 中的注意事项我正在尝试提取括号内的文本。请注意括号的两端都有引号。如果我删除这些,则返回的文本带有引号。所以我的问题是如何在脚本不失败的情况下删除引号。
sn-p 是 PowerShell 脚本的一部分,它在我的电脑上搜索游戏的日志文件并将提取的文本写入文本文件。
任何帮助表示赞赏,谢谢。
更新 - 我是否正确地认为我使用重音来防止引号被用于分隔?
【问题讨论】:
-
括号是正则表达式的特殊字符。这就是为什么如果你想从字面上找到它们,你应该用“\”(反斜杠)转义它们。
-
你能举一个源数据的一行的例子,你想提取什么吗?
.*组合将尝试匹配所有内容,这就是它可能无法按预期工作的原因。 -
所以我想要的文本将类似于 Group Run。但文本实际上是什么并不重要。当我提取它时,它带有引号。所以我想摆脱它们,只留下文字。我正在考虑在每个引号前尝试重音。
-
@StephenCousins 分享一个搜索文本和预期输出的小示例可能会有所帮助。 ;-)