Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Re 17.11.06 16:15 Число просмотров: 2701
Автор: Heller <Heller> Статус: Elderman
|
В регулярках можно использовать так называемые классы:
$temp=~/a[bd]c/
Такому регулярному выражению будет соответствовать и abc и adc. То есть класс - это набор символов в одном. С ними можно использовать стандартные квантификаторы:
$temp=~/a[bd]*c/
В шаблоне вначале идет a, затем любое количество b или d, и в конце c.
В классах можно использовать диапазоны: [a-z] - это все символы от a до z. Допустим, поиск первого слова можно мделать так:
$temp=~/[a-z]+/
Если хотим нечувствительности к регистру, то можно сделать так:
$temp=~/[a-zA-Z]+/
При этом диапазон задается на самом деле не в алфавитном порядке, а как границы кодов.
Посмотри на таблицу для KOI8-R: http://en.wikipedia.org/wiki/KOI8-R
А теперь на отрывок, который я уже приводил:
$temp=~/[ю-Ъ]+/
Смысл думаю должен теперь стать понятным.
В кодировке же Win-1251 (http://en.wikipedia.org/wiki/Windows-1251) все буквы идут подряд и поэтому мы можем написать [А-я]. Для латиницы такое не прошлобы, так как между A и z находятся еще ряд символов ([, ], ^, `, \, _, хотя последний обычно считается за букву; смотри на счет значений символов таблицы). Поэтому для латиницы [A-z] будет не верно, а надо указывать два диапазона [a-zA-Z].
Ну, вроде подробно раписал.
|
|
|