php中这个C#Regex表达式的等效正则表达式是什么:
(0|\+98)?([ ]|-|[()]){0,2}9[1|2|3|4]([ ]|-|[()]){0,2}(?:[0-9]([ ]|-|[()]){0,2}){8}
这是来自https://stackoverflow.com/a/18618958/1080355的波斯手机号码的常规快递 这是我在CakePHP验证规则中的代码片段:
function isValidPhoneFormat($phone) {
$phone_no = $phone['phone_number'];
$reg_expression='(0|\+98)?([ ]|-|[()]){0,2}9[1|2|3|4]([ ]|-|[()]){0,2}(?:[0-9]([ ]|-|[()]){0,2}){8}';
$errors = array();
if (empty($phone_no)) {
$errors [] = "شماره وارد شده معتبر نمی باشد";
//
} else if (!preg_match($reg_expression, $phone_no)) {
$errors [] = "شماره وارد شده معتبر نمی باشد";
}
if (!empty($errors))
return implode("\n", $errors);
return true;
}
答案 0 :(得分:2)
你的正则表达式对我有用,
<?php
$mystring = "foo +98 91 1 1 1 1 1 1 1 1 ";
$regex = '~(0|\+98)?([ ]|-|[()]){0,2}9[1|2|3|4]([ ]|-|[()]){0,2}(?:[0-9]([ ]|-|[()]){0,2}){8}~';
if (preg_match($regex, $mystring, $m)) {
$yourmatch = $m[0];
echo $yourmatch;
}
?>
<强>输出:强>
+98 91 1 1 1 1 1 1 1 1