在下面的代码中,我应该使用什么正则表达式来查找与 032 区号匹配的数字?
$regex = ''; // what should i put in here?
$phone_numbers = array("02-123-4567","(032)3214567","032-1237654");
for ($x =0; $x<=count($phone_numbers)-1;$x++) {
if (preg_match($regex, $phone_numbers[$x]))
echo $phone_numbers[$x] . "<br />";
}
应该是这样的:
$regex = '~^[(]?032[)-]?'d{7}$~';
在032
之前可以是括号,之后是括号032
连字符,或者什么都没有,并且超过7个数字到字符串的末尾。
{7}
我在这里使用只是因为您向我们展示了 7 位数的电话号码,如果数字计数不是正好是 7,您可以使用 eg。 {7,9}
或只是+
.我不知道您的电话号码到底是什么格式。
您的第一个"电话号码"中间包含连字符,如果它是可能有效的格式,它将是
$regex = '~^[(]?032[)-]?'d{3}-?'d{4}$~';
您可能可以侥幸逃脱:
/032(.*'d){7}/
重要的是它后面有七个数字。因为任何 3 位数字后面有 7 位数字都必须是区号。
使用这个: [(]?032[)-]?('d+)
此正则表达式与示例代码中的最后 2 项匹配。
也请尽量不要在这里问这样的简单问题。Web有很多工具,例如rubular,您可以在其中练习和测试正则表达式。