我正在尝试在我的硬盘上搜索电子邮件地址。我知道它应该是这样的:
b ************米@ë******。com
这就是我想出这个正则表达式的原因:
湾{12}米@即{6} .COM
我发现findstr
对这项工作有用并尝试过:
findstr /R b.{12}m@e.{6}\.com c:\*.*
但是即使我添加的文件中包含的电子邮件应与我的正则表达相匹配,也没有找到任何内容,例如:b8726ngs.poinm@e123456.com
答案 0 :(得分:0)
您可以尝试使用以下PowerShell命令执行此操作(请注意,根据您的启动位置,这可能需要很长时间才能运行):
Get-ChildItem *.txt -Recurse -File | Where-Object { (Get-Content $_.FullName) -match "b.{12}m@e.{6}.com" }
您将收到您无权访问的磁盘区域的红色错误消息。以管理员身份运行PowerShell以进行尽可能广泛的搜索。
添加Get-ChildItem的文件路径,以便根据需要设置基目录,否则它将从您当前所在的目录开始。
参数说明:
-Recurse
搜索当前目录和所有子目录。-File
仅返回文件(不是目录)。Get-Content $_.FullName
获取每个文件的内容。-match
执行正则表达式比较。答案 1 :(得分:0)
有正则表达式然后有正则表达式。看起来findstr不是很强大。
findstr /R "b............m@e......\.com" *.*
这只是在findtr部分不起作用 通过适当的预防措施,例如,在只包含可读文件的目录中。