繁体   English   中英

在PowerShell中选择字符串cmdlet。 解析括号

[英]Select-String cmdlet in PowerShell. Parsing parenthesis

我将其存储在如下所示的文本文件中:

Java 8 Update 111
Java 8 Update 111 (64-bit)
Java 8 Update 131
Java 8 Update 151
Java 8 Update 152

我正在使用PowerShell对这些信息进行处理,但是在第一步遇到了困难。 我正在使用Select-String来匹配模式,但无法正常工作。

Select-String "\\server\JavaVersions.txt" -Pattern "Java 8 Update 111 (64-bit)"

似乎不起作用,但以下内容将两者都恢复了。

Select-String "\\server\JavaVersions.txt" -Pattern "Java 8 Update 111"

有谁知道为什么带括号的那个不起作用? 是解析问题吗? 我真的需要能够先获取一个(64-bit)然后对其单独进行操作。

您必须转义特殊的正则表达式字符。 在您的情况下,用括号括起来。

Select-String '\\server\JavaVersions.txt' -pattern "Java 8 Update 111 \(64-bit\)"

https://www.regular-expressions.info/characters.html

或者,使用-SimpleMatch关闭正则表达式匹配:

Select-String '\\server\JavaVersions.txt' -Pattern 'Java 8 Update 111 (64-bit)' -SimpleMatch

https://docs.microsoft.com/zh-cn/powershell/module/microsoft.powershell.utility/select-string?view=powershell-5.1

作为一种替代选择,如果不需要为匹配使用正则表达式,则可以使用-SimpleMatch参数:

Select-String '\\server\JavaVersions.txt' -SimpleMatch "Java 8 Update 111 (64-bit)"

然后,您无需进行任何正则表达式转义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM