The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

Regex (регулярные выражения)

   Корень / Программисту и web-разработчику / Perl / Regex (регулярные выражения)

----* Как в Perl скрипте сосчитать число совпадений в regex.   [комментарии]
 
$numbers = () = ($src_string =~ m/\d+/g);
 
----* Как в perl regex обнаружить несколько одинаковых, подряд идущих, символов.   [обсудить]
 
my $a="ttttest"; # Нужно определить 4 подряд идущих символа
if ($a =~ /([a-z])\1{3}/ ){
   print "4 совпало.\n";
}
 где, \1 - обратная ссылка на совпадение в скобках, {3} - повтор 3 раза.
 
----* Как при использовании переменной в regex запретить интерпретацию спец. символов.   [обсудить]
 
Нужно поместить переменную между "\Q" и "\E":
  $var =~ m/\Q$mask\E/;
Можно отдельно вызвать функцию для экранирования:
  $var = quotemeta($var);
 
----* Как в Perl вызывать функции внутри regex.   [обсудить]
 
Пример замены первой буквы в строке с нижнего регистра на верхний:
   $a =~ s/^(\w)(.*)$/uc($1).$2/e;
 
----* Как используя Perl разбить число на триады   Автор: gr  [обсудить]
 
$num = 100000000000000; 
$num =~ s/(\d{1,3}(?=(?:\d\d\d)+(?!\d)))/$1,/g;
 
----* Как в Perl вырезать у строки лидирующие пробелы   [комментарии]
 
  $str =~ s/^\s*([^\s]?.*)$/$1/;
  $str =~ s/^(.*[^\s])\s*$/$1/; # два regex работают быстрее, чем один более сложный
 
----* Как закодировать и раскодировать строку %XX в URL.   [комментарии]
 
Закодировать:
$toencode =~ s/([^a-zA-Z0-9_.-])/uc sprintf("%%%02x",ord($1))/eg;
Раскодировать:
$todecode =~ s/%(..)/pack("c",hex($1))/ge;
 

 Версия для печати




  Закладки на сайте
  Проследить за страницей
Created 1996-2017 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
Hosting by Ihor TopList