Powershell - 如何从文件夹的.cs文件中找到与正则表达式匹配的所有字符串?

时间:2014-06-06 04:52:43

标签: c# powershell

我想从除了注释(双斜杠)之外的所有.cs类文件中找到所有字符串(在双引号内)。这是我到目前为止所提出的,并且它不会忽略注释行,并且它不仅仅返回字符串本身(双引号内的内容)。有人可以帮我改进这个Powershell脚本吗?谢谢。我正在运行Win7

gci -path C:\Working\MyFolder -Include *.cs -Exclude *Designer.cs, *AssemblyInfo.cs -Recurse |
select-string -pattern '\"[^\"]*\"'  | export-csv oput.csv

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

select-string -pattern '(?<!([/]{2}.*))\".*\"'

使用Positive and Negative Lookbehind可以像这样翻译:

\".*\"查找双引号

之间的任何字符 前面的

(?<!([/]{2}.*))表示:前面没有[/]{2}.*(两个/后跟任何字符)

如果您想自己检索字符串:

gci -path C:\Working\MyFolder -Include *.cs -Exclude *Designer.cs, *AssemblyInfo.cs -Recurse |get-content | % {if ($_ -match '(?<!([/]{2}.*))\"(.*)\"'){$matches[0]}}