我将其存储在如下所示的文本文件中:
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)
一个并单独采取行动。
答案 0 :(得分:3)
你必须逃避特殊的正则表达式字符。在您的案例中。
Select-String '\\server\JavaVersions.txt' -pattern "Java 8 Update 111 \(64-bit\)"
答案 1 :(得分:2)
或者,使用-SimpleMatch
关闭正则表达式匹配:
Select-String '\\server\JavaVersions.txt' -Pattern 'Java 8 Update 111 (64-bit)' -SimpleMatch
答案 2 :(得分:1)
作为替代选项,如果您不需要为匹配使用正则表达式,则可以使用-SimpleMatch
参数:
Select-String '\\server\JavaVersions.txt' -SimpleMatch "Java 8 Update 111 (64-bit)"
然后您不需要执行任何正则表达式转义。