Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
|
[Perl] А что это за параметр такой 'l'? Вроде insensitive всегда была 'i' 15.11.06 16:44 Число просмотров: 3020
Автор: amirul <Serge> Статус: The Elderman
|
|
<programming>
|
[Perl] m//l не катит 15.11.06 14:30 [kstati]
Автор: exed Статус: Незарегистрированный пользователь
|
Нужно искать совпадения в строках, не учитывая регистра. Мой пёрл не берёт m с параметрами. Что-то я не понимаю.
|
|
[Perl] А что это за параметр такой 'l'? Вроде insensitive всегда была 'i' 15.11.06 16:44
Автор: amirul <Serge> Статус: The Elderman
|
|
| |
однако кириллица не катит.. чё-ж с ним делать-то? 16.11.06 18:10
Автор: exed Статус: Незарегистрированный пользователь
|
|
| | |
Прописывать в классе напрямую: [А-я] (для Win-1251 - это сильно зависит от кодировки, в KOI оно будет вообще [ю-Ъ]) 16.11.06 20:41
Автор: Heller <Heller> Статус: Elderman
|
|
| | | |
Несколько кодировок нужно юзать.. А про класс я вообще не понял. 17.11.06 01:30
Автор: exed Статус: Незарегистрированный пользователь
|
|
| | | | |
Re 17.11.06 16:15
Автор: 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].
Ну, вроде подробно раписал.
|
| |
thanx стопудоф. скан кукбука нечёткий (: 16.11.06 17:36
Автор: exed Статус: Незарегистрированный пользователь
|
|
|
|