|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : John Lepikhin 2:5070/156 21 Sep 2002 10:36:10 To : Vadim Nikiforov Subject : Re: Регуляpные выpажения - как? -------------------------------------------------------------------------------- Мир Миру твоему, Вадим. !> On 19 Sep 02 20:11:27 +0900, Вадим -> All: VN> у меня никак не получается вычленить из стpоки текста некий кусок VN> (в данный момент это IP-адpес). Отловить стpоки, в котоpых он VN> есть мне удалось пpи помощи кода: VN> $cnt = ($string=~/(\d+\.){4}/); Под регэксп /(\d+\.){4}/ попадают такие строки: 192.168.1.1. 100.100.100.100. и все другие ip-подобные, где в конце есть точка. Я предлагаю такое решение: $str = 'bla-bla-bla 192.168.1.1 bla-bla-bla'; # выделить в массив: @ip = $str =~ /(\d+)\.(\d+)\.(\d+)\.(\d+)/; # выделить в скаляр: ($ip) = $str =~ /(\d+\.\d+\.\d+\.\d+)/; Если же известно, в какой точке строки начинается запись об ip-адресе, достаточно такого решения: $str = 'bla-bla-bla 192.168.1.1 bla-bla-bla'; # ^^^^^^^^^^^^ 12 символов # выделяем в скаляр: ($ip) = $str =~ /^.{12}([\d.]+)/; # делим скаляр на отдельные числа и заносим в массив: @ip = split '.' $ip; p.s. хотелось бы поточнее услышать задачу. Быть может, будет универсальное решение одним регэкспом для вытаскивания всей необходимой информации. -- ... [болотный сисоп] {{злостный атеист и антикузнецовец}} --- Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.1 (Cuyahoga Valley) * Origin: A poorly-installed InterNetNews site (2:5070/156.0) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/3652928dff415.html, оценка из 5, голосов 10
|