Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Kirill Frolov                        2:5030/1123.8  09 Jun 2004  02:51:42
 To : Serg Ivanov
 Subject : Re: RE
 -------------------------------------------------------------------------------- 
 
 
 On Mon, 07 Jun 04 06:49:47 +0400, Serg Ivanov wrote:
 
  SI>>> Так из каких же символов состоит этот класс?
  KF>>   Я так думаю, при 8-битном LC_CTYPE -- пустое множество. Иначе -- все
  KF>> символы с кодом больше 0xff и меньше нуля.
  SI>  Пустой символ был неудачной фразой, надо было сказать "отсутствие
  SI> символа".
 
   Hет, я сказал именно "пустое множество", раз речь идёт о множестве, а
 не об конкретном единичном символе. Так вот множество может быть пустое,
 то есть не содержащим ни единого символа. А пустой символ -- это что-то
 непонятное. Символ он или есть, или его нет.
 
  SI> В этом примере Юникод можно не рассматривать и предполагать, что всего
  SI> существует 256 однобайтовых символов.
 
   Hет. Я *не знаю* как perl обрабатывает символы. Поэтому для меня
 минимальная единица информации -- символ. А уж сколько в нём байтов, а в
 байте битов я голову не забиваю.
 
  SI>  Вопрос такой: почему здесь нет совпадения: 
  SI>
  SI>      '1'=~/\z[^\x00-\xff]/, 
  SI>
 
   Потому, что в строке "1" нет подстроки "z".
 
  SI> а здесь оно есть:
  SI>
  SI>      $a=''; (и также $a=undef;)  '1'=~/\z$a/ ?
  SI>
 
   А здесь его по этой же причине быть не может. Поэтому я не понимаю, к
 чему эти примеры. Возможно под выражением "\z" имелось ввиду что-то
 отличное от символа 'z'?  Hо и в таком случае совпадения быть не может --
 регулярное выражение требует после "\z" наличия одного любого символа,
 кроме символов с кодами 0x00-0xff. То-есть строка должна состоять
 минимум как из двух символов. А если в текущей локали используется
 действительно 8-битная кодировка, то такое выражение специфицирует
 пустое множество символов, которому не соотвествует любой возможный
 символ, и такое выражение никогда не приведёт к совпадению с любой
 входной строкой.
 
  SI>  Hарод почему-то не хочет понять суть вопроса и уходит в Юникод.
 
   Потому, что символ это не байт. Это символ. Символ это атом, он не
 делится ни на байты, ни на биты. Даже в однобайтовой локали -- это
 только создателям perl известно, как оно там внутри обрабатывается.
 --- [ZX]
  * Origin: 0D00 1E54 41D1 9753 3F41 40F7 4BBA 050B 30E8 0E4E (2:5030/1123.8)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: RE   Kirill Frolov   09 Jun 2004 02:51:42 
Архивное /ru.perl/38338b6b576a.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional