我正在尝试编写一个小脚本来查明给定字符串是否包含电话号码和/或电子邮件地址。
这是我到目前为止所拥有的:
$stringOne = "My name is John and my phone number is 040-3627781";
// would be found
$stringTwo "My name is Becky and my phone number is 0 4 0 3 2 0 5 4 3";
// would not be found
电子邮件的部分工作正常,但我愿意改进。 随着电话号码我有一些问题。首先,将给予该功能的字符串很可能包含德国电话号码。问题是所有不同的格式。它可能是这样的 030 - 1234567或030/1234567或02964-723689或01718290918 等等。所以基本上我几乎不可能找出将使用的组合。所以我的想法是,或许最好找到一个至少三位数的组合,这是一个好主意。例如:
http://X.X.X.X:8081/index.ios.bundle?platform=ios
我遇到的问题是我不知道如何找到这样的组合。即使经过近一个小时的网络搜索,我找不到解决方案。 有没有人建议如何处理这个问题? 谢谢!
答案 0 :(得分:2)
您可以使用
<h2>
<a id="a" href=''>:hover, please</a>
</h2>
<小时/>
长版:
\b\d[- /\d]*\d\b
<小时/> 在
\b\d # this requires a "word boundary" and a digit
[- /\d]* # one of the characters in the class
\d\b # a digit and another boundary.
:
PHP
问题是,你可能会得到很多误报,所以当这些匹配被清理,规范化然后针对数据库进行测试时,它肯定会提高你的准确性。
<小时/> 至于您的电子邮件问题,我经常使用:
<?php
$regex = '~\b\d[- /\d]*\d\b~';
preg_match_all($regex, $your_string_here, $numbers);
print_r($numbers);
?>
有几十种不同的有效电子邮件,唯一可以证明某人背后是真人的方法是发送带有链接的电子邮件(即使这可以自动化)。