我想在正则表达式中使国际代码为可选。
<?php
$phone = 'abcd +89-800-123-4567 efgh';
$string = preg_replace("/([\+][0-9]{1,6}-[0-9]{3}-[0-9]{3}-[0-9]{4})/", '<a href="tel:$1" id="phone">$1</a>', $phone);
echo $string;
?>
如果我只尝试800-123-4567,它也应该可以工作。我使用?尝试了可选组:但是由于某些原因,它不起作用。这是我的示例代码
(?:\+?(\d{1,3}))?([0-9]{3}-[0-9]{3}-[0-9]{4})
答案 0 :(得分:0)
您错过了可选部分和电话号码其余部分之间的连字符:
$ pru_49297910
[3/1][39/0][54/1]