Прописывать в классе напрямую: [А-я] (для Win-1251 - это сильно зависит от кодировки, в KOI оно будет вообще [ю-Ъ])16.11.06 20:41 Автор: 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]+/
При этом диапазон задается на самом деле не в алфавитном порядке, а как границы кодов.
В кодировке же Win-1251 (http://en.wikipedia.org/wiki/Windows-1251) все буквы идут подряд и поэтому мы можем написать [А-я]. Для латиницы такое не прошлобы, так как между A и z находятся еще ряд символов ([, ], ^, `, \, _, хотя последний обычно считается за букву; смотри на счет значений символов таблицы). Поэтому для латиницы [A-z] будет не верно, а надо указывать два диапазона [a-zA-Z].