13.05.2006, 22:40
|
#11
|
Гость
Регистрация: 17.03.2006
Адрес: На хуторе
Сообщений: 213
|
Цитата:
Сообщение от Devastator
Мб будет еще полезно комуниб выложоить regexp.
Специальные символы и шаблоны используются для написания шаблонов по регулярным выражениям.
Следующая табличка описывает символы, применяемые в регэкспах с короткими примерами.
Символ
Описание
\
Отмечает следующий символ как специальный./n/соответствует символу "n". Последовательность/\n/соответствует linefeed (хз что это) или символу новой строки.
^
Соответствует началу ввода или входящей строки.
$
Соответствует концу ввода или входящей строки.
*
Соответствует предшествующему символу 0 или более раз. /zo*/ соответствует как "z" так "zoo."
+
Соответствует предшествующему символу 1 или более раз. /zo*/ соответствует "zoo." но не "z"
?
Соответствует предшествующему символу 1 или 0 раз. /a?ve?/ соответствует "ve" в "never."
.
Соответствует любому символу, кроме символа новой строки.
(pattern)
Проверяет соответствие pattern и запоминает соответствие. Сравниваемая подстрока может быть получена из переменных %0-%9. Для сравнения с символами скобок ( ), применяйте "\(" или "\)".
x|y
Сответствует либо x либо y. /z|food?/ соответствуе "zoo" или "food."
{n}
n – неотрицательное целое. Соответствует точно n раз. /o{2}/ не соответствует "o" в "Bob," однако соответствует первым 2м o в "foooood."
{n,}
n – неотрицательное целое. Соответствует хотябы n раз. /o{2,}/ не соответствует "o" в "Bob," однако соответствует всем o в "foooood." /o{1,}/ эквивалентно /o+/.
{n,m}
m и n – неотрицательные целые. Соответствует хотябы n и не более m раз. /o{1,3}/ соответствует первым 3 o в "fooooood."
[xyz]
Набор символов. Соответствует любому из заключенным в скобки символов. /[abc]/ соответствует "a" в "plain."
[^xyz]
“отрицательный” набор символов. Соответствует любому не включенному в скобки символу. /[^abc]/ соответствует "p" в "plain."
\b
Соответствует разделителю слов, такому как пробел. /ea*r\b/ соответствует "er" в "never early."
\B
Соответствует ээээээ несловесному (?!) nonword разделителю. /ea*r\B/ соответствует "ear" в "never early."
\d
Соответствует цифровому символу. Эквивалентно [0-9].
\D
Соответствует нецифровому символу. Эквивалентно [^0-9].
\f
Соответствует form-feed символу.
\n
Соответствует linefeed символу.
\r
Соответствует символу возврат каретки.
\s
Соответствует любому пустому пространству а-ля пробел, табуляция и тп. Эквивалентно [ \f\n\r\t\v]
\S
Соответствует любому непустому пространству. Эквивалентно [^ \f\n\r\t\v]
\t
Соответствует табуляции.
\v
Соответствует символу вертикальной табуляции.
\w
Соответствует любому (словесному?) символу, включая подчеркивание. Аналогично [A-Za-z0-9_].
\W
Соответствует любому (несловесному?) символу. Аналогично [^A-Za-z0-9_].
/n/
Соответствует n, где n 8ное, 16ное, или десятичное значение ESC последовательности. Это возможность вставить ASCII коды (цвета и тп) в регэкспы.
Пример:
/^You (massacres|hits|bruises|slashes|blugeons) (.+) (very hard|hard|extremly hard)*( with your slash)*/
Даст совпадения на строках: «You massacres dragon with your slash» «You blugeons dragon very hard» «You blugeons dragon hard» итп.
|
Чето парагон какой-то!
|
|
|