从txt文件中删除除数字之外的所有内容

时间:2013-11-28 08:36:53

标签: regex parsing text

我需要帮助。我有一个包含大量信息的文本文件,包括姓名,路线和电话,但我只需要将手机放在文件上。它是这样的:

Stephanie D. Ferebee
Rua Inácio de Andrade, 128
 (41) 5123313
James M. Tidwell
Rua Oitenta e Quatro, 1698
 (43) 2571815
Sherry M. Rossman
Rua Fernandes Vieira, 218
 (41) 2931075

我怎样才能将数字保存在文件中?它们都像:“(XX)XXXXXXX”(包括开头的空格)。

4 个答案:

答案 0 :(得分:1)

假设所有电话号码都以(digit开头,您可以使用grep命令,如下所示:

$ grep "^ ([0-9]" file
 (41) 5123313
 (43) 2571815
 (41) 2931075

答案 1 :(得分:0)

如果你只想要一个正则表达式的电话号码使用这个:

<强>模式

\(\d{2}\) \d{7}

只能抓住您提供的格式的数字:

(XX) XXXXXXX

答案 2 :(得分:0)

如果您使用的话,可以使用PowerShell。

Get-Content C:\test.txt | Select-String "\(\d{2}\) \d{7}"

您需要根据文本文件更改路径(此处为C:\test.txt

答案 3 :(得分:0)

因此,要使用TextWrangler以及搜索和替换功能,您可以使用以下正则表达式来查找数字:

(\d{2}) \d{7}

但这不会帮助你只保留你需要的东西。要选择特定组并删除其余组,您可以执行以下操作:

注意()字符用于捕获群组,因此您可以尝试以下操作:

查找

/((.*)(\(\d{2}\) \d{7})(.*)|(.*))/g

替换:

$3

$3表示您只会保留第三个匹配组,即(\d{2}) \d{7}

另外请注意,如果您的号码之间出现空行,您可以开始第二次搜索并替换并搜索模式^\r。替换为零和 voila !。

或者您可以将其合并为一个正则表达式(在搜索字段中):/((.*)(\(\d{2}\) \d{7})(.*)|(.(\r|\n)*))/g

相关问题