Powershell的搜索字符串Containig $
我要搜索以下字符串中的文本文件:$$u$$
我试过select-string
,get-content
,.Contains
。在我看来,这是不可能的。
我用它进行搜索作为变量:$ToSearch = "'$'$u'$'$"
它总是提供虚假的结果。
有没有人知道解决方案?
这是因为大多数搜索过滤器都依赖于正则表达式。在正则表达式$符号需要转义
不知道更多的你要完成我不能给太多的例子了什么,但这里是一个:
'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,则需要在比赛的任何一端包含wilcard * '*$$u$$*'
。为了简单匹配,只需使用您想匹配的字符串 - '$$u$$'
。
只要不要忘记单引号模式,因为'$'也是PowerShell中的特殊字符,并且使用双引号字符串进行评估。 – 2014-09-24 14:32:06
$ true dat。最佳做法是在字符串包含明确想要展开的变量和/或子表达式时仅加双引号。 – mjolinor 2014-09-24 14:39:40
我只想有一个二进制答案(TRUE/FALSE)是否可以在文本文件中找到该字符串。更多的行可以包含这个,但是一个事件已经足以获得TRUE结果。 – jarvasm 2014-09-24 13:09:25
使用可能更有帮助的东西编辑回答 – 2014-09-24 13:15:15