Показать сообщение отдельно
Старый 13.05.2006, 21:40   #11
Glushko
Гость
 
Регистрация: 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» итп.
Чето парагон какой-то!
Glushko вне форума   Ответить с цитированием