擅长:python、mysql、java
<p>如果你对学习Regex感兴趣,你可以尝试自己编写它。这并不像人们想象的那么难。像<a href="http://regexpal.com/" rel="noreferrer">RegexPal</a>这样的站点允许您输入一些测试数据,然后针对这些数据编写并测试正则表达式。使用RegexPal,尝试添加一些您希望找到的各种格式的电话号码(带括号、区号等),获取一个<a href="http://www.regular-expressions.info/reference.html" rel="noreferrer">Regex cheatsheet</a>并查看您能走多远。如果没有别的,它将有助于阅读其他人的表达。</p>
<p>编辑:
这是您的Regex的一个修改版本,它还应该匹配缺少任何连字符、空格或点的7位和10位电话号码。我在字符类(the[]s)后面添加了问号,这使得其中的任何内容都是可选的。我在RegexPal中测试了它,但是由于我还在学习Regex,我不确定它是否完美。试试看。</p>
<pre><code>(\d{3}[-\.\s]??\d{3}[-\.\s]??\d{4}|\(\d{3}\)\s*\d{3}[-\.\s]??\d{4}|\d{3}[-\.\s]??\d{4})
</code></pre>
<p>它匹配RegexPal中的以下值:</p>
<pre><code>000-000-0000
000 000 0000
000.000.0000
(000)000-0000
(000)000 0000
(000)000.0000
(000) 000-0000
(000) 000 0000
(000) 000.0000
000-0000
000 0000
000.0000
0000000
0000000000
(000)0000000
</code></pre>