$string = 'SSM1234';
preg_match("SS{2,}\M+\[0-9]", $string);为什么这个正则表达式与我的示例$string不匹配
我需要检查给定的id是电子邮件地址还是ssmid.....also检查是否有正则表达式
if((!preg_match("/^S{2,}M+[0-9]+$/", $Forgot_field)) || (!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/", $Forgot_field))){
$result = "Enter a valid SSM ID or Email ID";
}发布于 2013-11-28 16:26:15
这应该是可行的
$string = 'SSM1234';
$res = preg_match('/^S{2,}M+[0-9]+$/', $string);您错过了分隔符/和您的正则表达式匹配至少3 S,而不是2。
我还添加了匹配的开始(^)和结束($)。但这不是强制性的(这取决于你的情况)
发布于 2013-11-28 16:27:50
此SS{2,}与字符串SSS或SSS[...]的以下部分匹配,因此至少有3个S。
您需要的是:
/^S{2,}M[0-9]+$/当然还有缺失的分隔符,就像之前提到的那样。
此正则表达式匹配字符串,如下所示:
SSM1
SSSM1
SSSSSSM157453247
SSSM123诸若此类。
如果您需要一个与示例字符串严格匹配的正则表达式,请尝试:
/^S{2}M\d{4}$/这个正则表达式精确地匹配{2}乘以S,再匹配M,然后匹配{4}乘以数字(\d)。
https://stackoverflow.com/questions/20260959
复制相似问题