2011-04-25 96 views
1

我正在研究一个项目,我们需要搜索一组网络驱动器来检查每个文件并查找信用卡号码和社会安全号码。我一直试图使用Cornell Spider程序,因为它每次使用都会崩溃。网络驱动器上的CC和SSN文件搜索

我想知道是否有方法使用Powershell或Windows上可用的脚本语言来执行分析(我假设字符串匹配),以匹配信用卡号和社会安全模式数字(可能是一个正则表达式)。如果有办法,并且由于我不是程序员,我很好奇是否有一些代码可以用来做这件事。此外,将文件(文本或CSV)中找到的结果保存/转储的能力也将非常有用。

任何想法或帮助,你可以提供将不胜感激。

============================================== =========

好吧,我一直在测试脚本,并想出了以下内容:

$spath = "C:\Users\name\Desktop\" 
$opath = "C:\Users\name\Desktop\Results.txt" 

$Old_SSN_Regex = "[0-9]{3}[-| ][0-9]{2}[-| ][0-9]{4}" 
$SSN_Regex = "^(?!000)([0-6]\d{2}|7([0-6]\d|7[012]))([ -]?)(?!00)\d\d\3(?!0000)\d{4}$" 
$CC_Regex = "^((?:4\d{3})|(?:5[1-5]\d{2})|(?:6011)|(?:3[68]\d{2})|(?:30[]\d))[ -]?(\d{4})[ -]?(\d{4})[ -]?(\d{4}|3[4,7]\d{13})$" 
$CC_2_Regex = "^(\d{4}-){3}\d{4}$|^(\d{4}){3}\d{4}$|^\d{16}$" 

Get-ChildItem $spath -Include *.txt -Recurse | Select-String -Pattern $SSN_Regex | Select-Object Path,Filename,Matches | Out-File $opath 
Get-ChildItem $spath -Include *.txt -Recurse | Select-String -Pattern $CC_Regex | Select-Object Path,Filename,Matches | Out-File $opath -Append 
Get-ChildItem $spath -Include *.txt -Recurse | Select-String -Pattern $CC_2_Regex | Select-Object Path,Filename,Matches | Out-File $opath -Append 

这似乎运作良好,问题是,如果在要匹配的项目之前或之后有空格,列出的正则表达式不会捕捉它。有什么我可以做不同的事情,以便它可以捕获该项目,如果它在文件中要匹配的模式之前或之后有空格?

+0

此问题已重新配置和回答[这里](http://stackoverflow.com/questions/5782920/regex-and-ignore-whitespace)。 – 2011-04-26 05:42:35

回答