用于波斯电话号码的C#regex的php等价物
php中此C#正则表达式的等效正则表达式是什么:用于波斯电话号码的C#regex的php等价物,c#,php,regex,preg-match,cakephp-2.3,C#,Php,Regex,Preg Match,Cakephp 2.3,php中此C#正则表达式的等效正则表达式是什么: (0|\+98)?([ ]|-|[()]){0,2}9[1|2|3|4]([ ]|-|[()]){0,2}(?:[0-9]([ ]|-|[()]){0,2}){8} 这是从 以下是我在CakePHP验证规则中的代码片段: function isValidPhoneFormat($phone) { $phone_no = $phone['phone_number']; $reg_expression='(0|\+98)?(
(0|\+98)?([ ]|-|[()]){0,2}9[1|2|3|4]([ ]|-|[()]){0,2}(?:[0-9]([ ]|-|[()]){0,2}){8}
这是从以下是我在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;
}
你的正则表达式对我有用
<?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;
}
?>
它看起来已经独立于平台/可移植。。。你试过运行它吗?我不知道它的等价物是什么?在phpc中,regex将在php.nope中工作!导致错误:
preg|u match():未知修饰符“?”
@VSB用/
或其他东西围绕它-它需要能够将修饰符从匹配代码中分离出来:/(0 |\+98)?([]-[124;[()]){0,2}9[1 | 2 | 3 | 4]([]-[124;[()]){0,2]([0-9]([]-[1240]){8}<代码>?
在PHP中是等效的,它只是认为代码在第一个)
之后结束,因为您从一个开头开始(
,这意味着它将把?
作为一个所谓的修饰符来计算。这些~是用来做什么的?不幸的是,我对正则表达式没有太多的了解!@VSB~
是一个PHP正则表达式分隔符。PHP中有很多正则表达式分隔符。
+98 91 1 1 1 1 1 1 1 1