Powershell -Like vs-使用转义正则表达式特殊字符进行匹配
我试图在一个字符串中查找两个字符串,这些字符串包括正则表达式特殊字符。 我可以成功地使用这样的正则表达式Powershell -Like vs-使用转义正则表达式特殊字符进行匹配,powershell,Powershell,我试图在一个字符串中查找两个字符串,这些字符串包括正则表达式特殊字符。 我可以成功地使用这样的正则表达式 if ( ($logFileNameConstruct -Match [regex]::escape('[Px~Error]')) -and ($logFileNameConstruct -Match [regex]::escape('[Px~Status]')) ) { 但是我喜欢在没有特别需要的时候避免使用正则表达式,我的理解一直是-like总是在寻找文本字符串,所以我希望这方面能成功
if ( ($logFileNameConstruct -Match [regex]::escape('[Px~Error]')) -and ($logFileNameConstruct -Match [regex]::escape('[Px~Status]')) ) {
但是我喜欢在没有特别需要的时候避免使用正则表达式,我的理解一直是-like总是在寻找文本字符串,所以我希望这方面能成功
if ( ($logFileNameConstruct -Like '*[Px~Error]*') -and ($logFileNameConstruct -Like '*[Px~Status]*') ) {
但它总是返回真实的。在百灵鸟上,我试着用双引号来表示。这两种方法都不起作用。在通配符匹配中保留方括号,以指定要匹配的字符的范围(例如
[0-5]
)或列表(例如[012345]
)
见:
没有转义它们的规定,因此在这种情况下,我认为您必须依赖
-match
和regex。方括号保留在通配符匹配中,以指定要匹配的字符的范围(例如[0-5]
)或列表(例如[012345]
)
见:
没有转义它们的规定,所以在这种情况下,我认为您必须依赖
-match
和regex。啊,不知怎的,我认为-Like没有通配符或特殊字符。谢谢你让我明白过来。啊,不知怎的,我觉得-Like没有通配符或特殊字符。谢谢你帮我澄清。
Get-Help about_Wildcards