Perl正则表达式匹配电话号码

时间:2015-05-18 13:33:50

标签: regex perl

正则表达式:

\b(\(\d{3}\)|\d{3})?[-.]?\d{3}[-]?\d{4}\b

我的输入文件有两种类型的电话号码。一,前三位数括在括号内,另一位没有括号。 例如:

"(201)-450-4479" ,"234-345-3456"

我希望使用备用运营商匹配这两种类型的电话号码。

请建议我。上述表达式需要进行哪些修改才能获得预期的结果?

2 个答案:

答案 0 :(得分:1)

\b匹配单词 - 非单词边界。如果这样的边界应该出现在(之前,那么它必须以一个单词字符开头,而不是空格或什么都没有。

比照

print /\b\(/ ? 1 : 0 for '(', ' (', 'a(';

从正则表达式中删除起始\b,或将其替换为

(?x: \b | \s | ^ )

答案 1 :(得分:0)

我会用这个:

(\(?\d+\)?\-\d+\-\d+)

或使用备用运算符:

(\d+\-\d+\-\d+|\(\d+\)\-\d+\-\d+)