2013-11-28 5 views
0
$string = 'SSM1234'; 
preg_match("SS{2,}\M+\[0-9]", $string); 

Почему это регулярное выражение не соответствует моему образцу $string?Регулярное выражение для этой буквенно-цифровой строки

мне нужно проверить данный идентификатор является ли адрес электронной почты или ssmid ..... также проверить есть регулярное выражение

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"; 
} 
+0

'S {2,} M + [0-9] +' – soumer

+0

Было бы полезно, если бы вы включили некоторые другие строки примеров, которые вы хотите сопоставить. Все ли соответствующие строки начинаются с «SSM» или они могут иметь любое количество S или M (или любую букву)? –

ответ

1

Это должно работает

$string = 'SSM1234'; 
$res = preg_match('/^S{2,}M+[0-9]+$/', $string); 

Вы пропустили разделителем / и ваше регулярное выражение не менее 3 S, а не 2.

Я добавил также начало (^) и en d ($) матча. Но это не обязательно (это зависит от Вашего случая)

1

Это SS{2,} матчей следующей части строки SSS или SSS[...] так по крайней мере 3 S.

Что вам нужно:

/^S{2,}M[0-9]+$/ 

Конечно с недостающими разделителей, как уже упоминалось abouth.

Это регулярное выражение соответствует строкам типа:

SSM1 
SSSM1 
SSSSSSM157453247 
SSSM123 

и так далее.

Если вам нужно регулярное выражение, которое строго соответствует вашей строке выборки попробовать:

/^S{2}M\d{4}$/ 

Это регулярное выражение соответствует точно {2} раз в S, а M, а затем {4} раз цифра (\d).

Смежные вопросы