首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP Regex提取电话号码

PHP Regex提取电话号码
EN

Stack Overflow用户
提问于 2013-09-17 08:28:14
回答 1查看 171关注 0票数 1

我在试着提取电话号码。从电子邮件

代码语言:javascript
复制
                        </tr>
                        <tr>
                            <td height=3D"20" valign=3D"bottom" style=3D"font-s=
    ize:10px; color:#817f80;padding:0px;margin:0px;">1-877-435-2623 | Mon-Fri 8=
    am-5pm, Sat-Sun 8am-12pm PST</td>
                        </tr>
                        <tr>
                            <td height=3D"35" valign=3D"bottom" style=3D"font-s=
    ize:10px; margin:0px; margin-top: 10px; padding:0px; padding-bottom:0px; co=
    lor:#939393;">&copy; 2012 Elance, Inc. |  441 Logue Ave. Suite 150 | Mounta=
    in View, CA 94043</td>
                        </tr>
                        <tr>
                            <td height=3D"20" valign=3D"bottom" style=3D"font-s=
    ize:10px; margin:0px; margin-bottom:25px; padding:0px; color:#939393;"><a h=
    ref=3D"https://www.elance.com/q/legal"><span style=3D"color:#939393;text-de=
    coration:none;">Terms of Service</span></a> | <a href=3D"https://www.elance=
    .com/p/legal/privacy-policy.pdf"><span style=3D"color:#939393;text-decorati=
    on:none;">Privacy Policy</span></a> | All Rights Reserved.</td>
                        </tr>
                    </table>
                    <div style=3D"margin: 0; padding: 0;">
                        <a href=3D"http://www.facebook.com/elance"><img src=3D"=
    https://www.elance.com/images/4.0/referral/facebook-btn-16x16.png" border=
    =3D"0" alt=3D"Facebook" title=3D"Facebook" /></a>&nbsp;
                        <a href=3D"http://www.twitter.com/elance"><img src=3D"h=
    ttps://www.elance.com/images/4.0/referral/twitter-btn-16x16.png" border=3D"=
    0" alt=3D"Twitter" title=3D"Twitter" /></a>&nbsp;
                        <a href=3D"http://www.linkedin.com/company/elance"><img=
     src=3D"https://www.elance.com/images/4.0/nav/nav_logo_sprite/icon-li.gif" =
    border=3D"0" alt=3D"LinkedIn" title=3D"LinkedIn" /></a>&nbsp;
                        <a href=3D"http://www.youtube.com/elance"><img src=3D"h=
    ttps://www.elance.com/images/4.0/nav/nav_logo_sprite/icon-yt.gif" border=3D=
    "0" alt=3D"Youtube" title=3D"Youtube" /></a>
                    </div>
                </td>0345-5407008
345-5124587
124-541-2215
+92-3455412412
3251452114
009124125413
hello world its my no. 03005134012
            </tr>

            </tbody>
        </table>

    </DIV>

    </BODY>
    </HTML>




    --PHP-alt-3fbbc9acbecd103566642de6249238ea--

    --PHP-mixed-3fbbc9acbecd103566642de6249238ea--


    251254125

使用正则表达式

代码语言:javascript
复制
 ?(\d|\+)(\+|\d|\(|\)|-| |\.){7,25} ?

但是我想忽略这些字符串中的匹配

代码语言:javascript
复制
--PHP-alt-3fbbc9acbecd103566642de6249238ea--

--PHP-mixed-3fbbc9acbecd103566642de6249238ea--

尝试http://rubular.com/r/b6K0LOcn3N更好的正则表达式吗?

对我的RegEx:?(\d|\+)(\+|\d|\(|\)|-| |\.){7,25} ?的解释

  1. 开始抓不了。当一个空间或者不是一个空间被检测到的时候。
  2. 如果第一个是0-9或+匹配任何字符,则启动匹配。
  3. 725因为小长度的电话号码。是7和
  4. 最多25次,包括白空间等
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-17 09:00:04

尝试使用一些单词边界\b

代码语言:javascript
复制
(?:\b\d|\+)(?:\+|\d|\(|\)|-| |\.){7,25}\b

我把捕获组变成了非捕获组。如果你只需要整个数字,我不认为你需要捕获组。

\b匹配的是“word”字符,后面是“非单词”字符,反之亦然(即\w\W\W\w)。

regex101演示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18844881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档