【发布时间】:2014-11-18 23:35:34
【问题描述】:
我想在文本文件中搜索以下字符串:$$u$$
我试过select-string、get-content、.Contains。在我看来这是不可能的。
我用它作为变量进行搜索:$ToSearch = "'$'$u'$'$"
它总是给出错误的结果。
【问题讨论】:
标签: string file powershell search
我想在文本文件中搜索以下字符串:$$u$$
我试过select-string、get-content、.Contains。在我看来这是不可能的。
我用它作为变量进行搜索:$ToSearch = "'$'$u'$'$"
它总是给出错误的结果。
【问题讨论】:
标签: string file powershell search
这是因为大多数搜索过滤器都依赖于正则表达式。正则表达式中的$符号需要转义
如果不了解您想要完成的更多内容,我无法举出太多示例,但这里有一个示例:
'this is a $$u$$ test' -replace "\$",""
“\”是转义字符的意思 - 意思是按字面意思翻译。
编辑:每条评论
$Val = 'this is a $$u$$ test'
$Val | Select-String "\$+\w\$+" -quiet
-Quiet 开关返回 t/f 而不是字符串值。
【讨论】:
$ 是正则表达式中的保留字符,这会使您的搜索复杂化。
Select-String 的默认搜索模式类型是正则表达式,但您也可以指定 -Simplematch 或 -Wildcard,其中任何一个都无需转义 $。如果您使用 -Wildcard,则需要在匹配的任一端包含通配符 * - '*$$u$$*'。对于简单匹配,只需使用您要匹配的字符串 - '$$u$$'。
【讨论】:
$ 也是 PowerShell 中的一个特殊字符,并在双引号字符串中进行评估。