Регулярные выражения...

Royal Flash

-=MaestrO=-
Регулярные выражения...

Есть текст, который может состоять из любого кол-ва и любых символов. Нужно убрать из него все лишнее и оставить только удовлетворяющее следующему условию: ^[a-z][a-z0-9_]*[a-z]+$. Да и еще, чтобы выборка состояла не более, чем из 9 символов.... Не силен я в регулярных выражениях... Help pls ...
 

Azy

Новичок
Поподробнее можно.
ТО что ты написал всю строку проверяет.
А если твое условие должно быть не более 9и символов пиши так: ([a-z][a-z0-9_]*[a-z]){1,9}
 

Royal Flash

-=MaestrO=-
Например из следующего текста: "фывzf\w/0qггг" должно остаться только: "zfw0q". Т.е. из любых символов должны остоваться только английские буквы (нижний регистр), цифры и знак подчеркивания. Причем, в начале и конце должны быть исключительно английские буквы.
 

valyala

Новичок
если твое условие должно быть не более 9и символов пиши так: ([a-z][a-z0-9_]*[a-z]){1,9}
Проверим:
PHP:
if (preg_match('/^([a-z][a-z0-9_]*[a-z]){1,9}$/', 'a1244454545dsfdfs345678901234567890a')) {
    echo 'ok';
} else {
    echo 'not ok';
}
Есть текст, который может состоять из любого кол-ва и любых символов. Нужно убрать из него все лишнее и оставить только удовлетворяющее следующему условию: ^[a-z][a-z0-9_]*[a-z]+$. Да и еще, чтобы выборка состояла не более, чем из 9 символов....
Попробуй такой код:
PHP:
$str = 'ab23243c';
// удаляем лишние символы
$str = preg_replace('/[^a-z\\d]/', '', $str);
// проверяем длину и условие, чтобы в начале и в конце строки были латинские буквы
if (!preg_match('/^[a-z][a-z\\d]{0,7}[a-z]$/', $str)) {
    echo "wrong string: [${str}]";
} else {
    echo "ok string: [${str}]";
}
 
Сверху