正则表达式来单独级联电话号码和电子邮件
问题描述:
我有遗憾的地方电话号码和电子邮件被连接这样的字符串:正则表达式来单独级联电话号码和电子邮件
$phone_email = "[email protected]";
我希望能最后一位数字和首字母之间的分裂。
$phone = "617.651.3123";
$email = "[email protected]";
我使用PHP,但希望该战略将是任何语言直白所需的输出。
编辑
我试过很多事情,比如试图通过简单地删除数字抢电子邮件。 $email = preg_replace('#^\d+#', '', $phone_email);
导致仅去除617
无视.
答
正如其他人指出的那样,在“最后一个数字和第一个字母”之间进行拆分可能不是一个好策略,因为电子邮件地址可以以数字开头。尽管如此,我相信这样做你问大概什么:
$phone_email = "[email protected]";
$matches = [];
preg_match("/([^a-zA-Z]*)(.*)/", $phone_email, $matches);
$phone = $matches[1];
$email = $matches[2];
echo "Phone: $phone\n";
echo "Email: $email\n";
// Output:
// Phone: 617.651.3123
// Email: [email protected]
答
简单的解决方案是:
$phone_email = "[email protected]";
$ms = array();
preg_match("/(.*\d)([a-z].*)/", $phone_email, $ms);
print_r($ms);
当然情况时的电子邮件与一些不被认为是开始。
向我们展示你已经尝试什么,什么没”工作。然后,我们有一些开始。另外,请用英文描述您希望以正则表达式实施的规则。你怎么知道什么是电话号码和什么是电子邮件? –
@anubhava:如果电子邮件地址以数字开头,那么这将被打破。 –
@AndyLester我尝试了很多事情,包括试图通过删除数字来简单地获取电子邮件。 '$ email = preg_replace('#^ \ d +#','',$ phone_email);'这样只会删除'617'而忽略'.'。 –