Regex 使用正则表达式在文件共享的所有文件中查找电话号码
我还有另一个问题在折磨我。我借用了下面的代码(我想不起来是从哪里来的),它看起来非常有希望确定文件共享中所有文件中的电话号码。代码对我来说绝对有意义,这就是为什么我不明白为什么它不起作用。我用我创建的一个文档来测试它,在文档中我放置了一个电话号码。它一无所获。任何帮助都将不胜感激Regex 使用正则表达式在文件共享的所有文件中查找电话号码,regex,file,phone-number,fileshare,Regex,File,Phone Number,Fileshare,我还有另一个问题在折磨我。我借用了下面的代码(我想不起来是从哪里来的),它看起来非常有希望确定文件共享中所有文件中的电话号码。代码对我来说绝对有意义,这就是为什么我不明白为什么它不起作用。我用我创建的一个文档来测试它,在文档中我放置了一个电话号码。它一无所获。任何帮助都将不胜感激 foreach ($file in Get-ChildItem -Recurse | Select-String -pattern '^\d{3}-\d{3}-\d{4}' | Select-Object -Uniq
foreach ($file in Get-ChildItem -Recurse | Select-String -pattern '^\d{3}-\d{3}-\d{4}' | Select-Object -Unique Path) {$file.path}
问题很可能是
^\d{3}-\d{3}-\d{4}
正则表达式要求电话号码是文档(或一行)中的第一个字符,而在实际文档中,它可能在中间某个地方。 将
^
锚定更改为\b
(单词边界)。您可能还希望在潜在电话号码后添加此单词边界锚:
\b\d{3}-\d{3}-\d{4}\b
你能提供文件的内容吗?没有。它没有提供任何内容。谢谢!我试试这个。呃……不,它还是不起作用。我什么也不退。那么请提供一个文件样本。好的,我让它开始工作了。现在唯一的问题是它只拾取包含数字的.txt文档。这次我是通过测试社会保险号码来实现的:下面是我使用的:foreach($file in Get ChildItem-Recurse-filter | Select String-pattern'[0-9]{3}-[0-9]{2}-[0-9]{4}'-allmatches | Select Object Unique Path){$file.Path}