Ниже приведена таблица паттернов и их соответствий:
/pattern/ | Соответствие |
x? | ноль или один символ 'x' |
x* | ноль или больше символов 'x' |
x+ | один или больше символов 'x' |
.* | ноль или больше любых символов |
.+ | один или больше любых символов |
{m} | M символов |
[] | символы, заключенные в [] |
[^] | символы, кроме заключенных в [] |
[0-9] | любая цифра от '0' до '9' |
[a-z] | любая буква от 'a' до 'z' |
[^0-9] | любой символ, не находящийся между '0' и '9' |
[^a-z] | любой символ, не находящийся между 'a' и 'z' |
/^.../ | первый символ в строке |
/...$/ | последний символ в строке |
\d | одна цифра, то же, что и [0-9] |
\d+ | одна или больше цифр, то же, что и [0-9]+ |
\D | одна не-цифра, то же, что и [0-9] |
\D+ | одна или больше не-цифр, то же, что и [0-9]+ |
\w | один alphanumeric символ (латинская буква или цифра), то же, что и [a-zA-Z0-9] |
\w+ | один или больше alphanumeric-символов, то же, что и [a-zA-Z0-9]+ |
\W | один не-alphanumeric символ, то же что и [^a-zA-Z0-9] |
\W+ | один или больше не-alphanumeric символ, то же что и [^a-zA-Z0-9]+ |
\s | один space символ (пробел, табуляция, новая строка), то же что и [\n\t\r\f] |
\s+ | один или больше space символов, то же что и [\n\t\r\f] |
\S | один не-space символ, то же что и [^\n\t\r\f] |
\S+ | один или больше не-space символов, то же что и [^\n\t\r\f]+ |
a|b|c | 'a' или 'b' или 'c' |
abc | подстрока "abc" |
(pattern) | () запоминает группу символов, присваивая их переменным $1, $2 и т.д. См. примеры. |
/pattern/i | игнорировать регистр букв |
Это, конечно, не понять с первого раза, поэтому вот примеры:
Пример | Описание |
$str=~/perl/; | проверяет, есть ли в строке $str подстрока "perl" |
$str=~/^perl/; | проверяет, начинается ли строка с подстроки "perl" |
$str=~/perl$/; | проверяет, заканчивается ли строка на подстроку "perl" |
$str=~/c|g|i/; | проверяет, содержит ли строка символ 'c' или 'g' или 'i' |
$str=~/cg{2,4}i/; | проверяет, содержит ли строка символ 'c', следующие сразу за ним 2-4 символа 'g', за которыми следует символ 'i' |
$str=~/cg*i/; | проверяет, содержит ли строка символ 'c', слудующие за ним 0 или больше символа 'g', за которыми следует символ 'i' |
$str=~/c..i/; | проверяет, содержит ли строка символ 'c', и символ 'i', разделенные двумя любыми буквами |
$str=~/[cgi]/; | проверяет, содержит ли строка один из символов 'c', 'g' или 'i' |
$str=~/\d/; | проверяет, содержит ли строка цифру |
$str=~/\W/; | проверяет, содержит ли строка символы, не являющиеся буквами латинского алфавита и цифрами |
Использование регулярных выражений:
1) Иногда требуется узнать расширение файла по его имени. Элементарное регулярное выражение выбирает все символы после последней точки;
# Пример в PHP
$filename = '/index.php';
$out = array();
preg_match('/\S+\.(\S+)$/', $filename, $out);
# $out[1] будет содержать расширение файла - 'php'
2) Заменяет английские закрывающие кавычки-«лапки» на русские «елочки»;
# Пример в PHP3) Простая проверка правильности введенного адреса электронной почты;
$text = preg_replace('/(\S)"([ .,?!])/', '$1»$2', $text);
# Пример в PHP4) Находит в тексте и автоматически преобразует адреса, начинающиеся с ftp://, http://, https:// в активные ссылки;
$is_ok = preg_match('/^(.+@.+\..+|)$/', $text);
# Пример в PHP
$text = preg_replace("#(https?|ftp)://\S+[^\s.,>)\];'\&
quot;!?]#", '\\0', $text);
А украиинские символі есть?
ВідповістиВидалитиХвороби лабораторні аналізи Джек Лондон Джек Лондон Зелений Змій Творчість Томаса Майн Ріда Твори Томаса Майн Ріда kapraldr3
ВідповістиВидалитиЗнакомства Полтава можно так [A-Za-za-яА-ЯїЇіІЄє']
ВідповістиВидалитиПолтава или так [а-яА-ЯїЇіІЄє]
ВідповістиВидалити