Помогите написать регулярное выражение..

dmitryy

Новичок
Помогите написать регулярное выражение..

есть строки вида

SBD0200NI36
SBD0399NI38
SBD0200NI

здесь первая буква либо S, либо T

затем идут 2 буквы они могут быть BG или BD или BB

затем - цифровой код (Сколько угодно цифр), например 0399

потом идут снова 2 буквы, они могут быть NI, либо NA либо FF

а затем НЕОБЯЗАТЕЛЬНО но может быть любая строка, например 38 или АВА

я в регулярных выражениях ноль.. помогите плиз как мне распарсить эти строки...




я пробовал так

preg_match('/[S|T][BG|BD|BB]\d+[NI|NA|FF]\d+?/', 'SBB0006NI', $p);

echo "<pre>";
var_dump($p);
echo "</pre>";

На выходе

array(0) {
}
 

freeek

Новичок
альтернатива задается через (вариант1|вариант2|вариант3|и т.д.)
а в [тут] помещается символьный класс
 

dmitryy

Новичок
<?

preg_match('/(S|T)(BG|BD|BB)\d+(NI|NA|FF)\d+/', 'SBB0006NI', $p);

echo "<pre>";
var_dump($p);
echo "</pre>";

?>

На выходе

array(0) {
}
 

AmdY

Пью пиво
Команда форума
\d+ замени на \d*

-~{}~ 22.08.10 15:01:

ещё бы начало ^ и конец строки $ всунул, если не ищешь подстроку
 
Сверху