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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/371.32  07 Sep 2001  12:32:43
 To : Yuriy Kaminskiy
 Subject : Re: simple regexp
 -------------------------------------------------------------------------------- 
 
  TVI>> должна быть разделена на поля: 11, 22, 33, 44. Hе получается, блин :(
  AC>> ...
  TVI>> Причем, если заменить (@|#) на [@#] - все проходит на ура...
  AC>> Hу и замени. Заодно будет существенно быстрее работать.
  YK>> Вопрос только в том, что делать, когда (...) _действительно_
  YK>> необходимо (f.e. для \1; т.е. (?:...) не подходит).
  AC>> ([@#]). Ты не путай группирование для backreference с группированием для
  AC>> альтернативы.
 YK>  Я ничего не путаю. Это ты вопрос не понял :) Ладно, на примере разжую:
 YK>  Есть @res = split(/([#@])\1/,"aa##bb#@cc").
 YK>  Хочу получить qw/aa bb#@cc/;
 YK>  Получаю       qw/aa # bb#@cc/;
 YK>  Теперь понятно?
 
 До некоторой степени. perldoc -f split на предмет того, как он пользуется
 backreferences. А то, чего тебе хотелось, если я правильно ошибаюсь, делается
 
 split(/##|@@/,"aa##bb#@cc")
 
 Просто изначальный вопрос ставился, сколь я помню, как "два любых символа из #
 и @", что соответствует [#@]{2}. А "два одинаковых из" - это, извините, ##|@@.
 Если же у тебя будет задача, которая действительно требует backreference в
 разделителе, то надо либо не пользоваться split, либо брать из результата
 только четные элементы.
 
 -- 
 Artem Chuprina <ran@ran.pp.ru>
 FIDO: 2:5020/371.32
 --- slrn/0.9.7.0 (Linux)
  * Origin: AKA с подствольным плюсомётом (2:5020/371.32)
 
 

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

 Тема:    Автор:    Дата:  
 Re: simple regexp   Artem Chuprina   07 Sep 2001 12:32:43 
Архивное /ru.perl/691892fd56804.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional