我将其存储在下面显示的文本文件中:
Java 8更新111Java 8更新111(64位)Java 8更新131Java 8更新151Java 8更新152
我正在使用Powershell对这些信息做点事,但在第一个障碍上挣扎。我正在使用Select-String
匹配模式,并且它不起作用。
Select-String "\serverJavaVersions.txt" -Pattern "Java 8 Update 111 (64-bit)"
似乎不起作用,但下面使两者都带回。
Select-String "\serverJavaVersions.txt" -Pattern "Java 8 Update 111"
有人有什么想法,为什么有括号的人不起作用?是解析问题吗?我真的需要能够将(64-bit)
放在另一个之前,然后分别采取行动。
您必须逃脱特殊的正则角色。在您的情况下。
Select-String '\serverJavaVersions.txt' -pattern "Java 8 Update 111 (64-bit)"
https://www.regular-expressions.info/characters.html
另外,请使用-SimpleMatch
关闭正则匹配:
Select-String '\serverJavaVersions.txt' -Pattern 'Java 8 Update 111 (64-bit)' -SimpleMatch
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/select-string?view=powershell-5.1
作为替代选项,如果您不需要使用匹配的正则表达式,则可以使用-SimpleMatch
参数:
Select-String '\serverJavaVersions.txt' -SimpleMatch "Java 8 Update 111 (64-bit)"
您就不需要做任何正则逃脱。