Code: <td><a href="/users/1456036/"id="good">Username</a></td> Требуется через регулятивное выражение считать *1456036* в переменную. читал по этому поводу мануалы,мало-чего понял Посоветуйте литературу.
А если на странице много форм Code: <td><a href="/users/1456031/"id="good">Username</a></td>; <td><a href="/users/1456032/"id="good">Username</a></td>; <td><a href="/users/1456033/"id="good">Username</a></td>; И каждую нада записать впеременную?
Писал исходя из личного опыта, но могу порекомендовать заглянуть в избарнное->books там видел хорошие книжки по perl'у
Ну и на кой ляд стока лишнего? При условии, что сорец страницы находится в $source: Code: my @digits = $str =~ /\d+/g;
Ох нада было сразу сказать вам всю правду ! Пытаюсь ник граббер зделать Вот кусок страницы Code: ......................................................... </tr> <tr class="caption_bg"> <td><a href="/album/1447593/" id="girl">╬ы№ур</a></td> <td>╙ъЁршэр, ╩шхт</td> <td>56</td> <td>ыхт</td> <td><span class="larger">-</span></td> <td><span class="larger">-</span></td> </tr> <tr class="caption"> <td><a href="/album/1454793/" id="girl">╩рЄ*</a></td> <td>╙ъЁршэр, ╩шхт</td> <td>17</td> <td>ёъюЁяшюэ</td> <td><span class="larger">-</span></td> <td><span class="larger">-</span></td> </tr> <tr class="caption_bg"> <td><a href="/album/1456036/" id="girl">└ышэр</a></td> <td>╙ъЁршэр, ╩шхт</td> <td>13</td> <td>ыхт</td> <td><span class="larger">+</span></td> <td><span class="larger">-</span></td> </tr> .................... Надо эти значения-*1456036*,*1454793*,*1447593*- записать в файл.
вообщем делай сначала так $ans=~s/<[^<a href=]+>//ig; -- поидее должно снести все теги кроме <a href="/album/1454793/" id="girl"> а дальше уже как было показано выше только в цикле
да на*** вы чето в регесп суете, если человек говорит, что ему тупо надо числа эти в файл забросить? Code: # $html - тут сорец страницы my @nums = $html =~ /\d+/g; open(OUT, '>', 'out.txt') || die $!; print OUT join("\n", @nums); close OUT;
Code: #/usr/bin/perl -w open(FIL, "<file.html"); open(SUC, ">SUCCESS.txt"); @fil=<FIL>; foreach $str(@fil) { if ($str=~m/<a href="\/album\/(\d+)\/"/) { push (@URLS,"$1\n"); }} print SUC @URLS; close (FIL); close (SUC); ps: подпись у топикстартера прикольная
ну плин перл учу месяц-немогу понять я эти регулятивные выражения, а услуги спэма предоставляю добросовисно
А теперь немного подумаем? Сколько циферок оно соберёт на странице типа: PHP: <td><input type="radio" name="iconid" value="12" id="rb_iconid_12" tabindex="1" onclick="swap_posticon('pi_12')" /></td> <td width="12%"><label for="rb_iconid_12"><img src="images/icons/icon12.gif" alt="Wink" id="pi_12" onclick="rb_iconid_12.click()" /></label></td> <td><input type="radio" name="iconid" value="11" id="rb_iconid_11" tabindex="1" onclick="swap_posticon('pi_11')" /></td> <td width="12%"><label for="rb_iconid_11"><img src="images/icons/icon11.gif" alt="Red face" id="pi_11" onclick="rb_iconid_11.click()" /></label></td> <td><input type="radio" name="iconid" value="10" id="rb_iconid_10" tabindex="1" onclick="swap_posticon('pi_10')" /></td> <td width="12%"><label for="rb_iconid_10"><img src="images/icons/icon10.gif" alt="Talking" id="pi_10" onclick="rb_iconid_10.click()" /></label></td> <td><input type="radio" name="iconid" value="9" id="rb_iconid_9" tabindex="1" onclick="swap_posticon('pi_9')" /></td> <td width="12%"><label for="rb_iconid_9"><img src="images/icons/icon9.gif" alt="Unhappy" id="pi_9" onclick="rb_iconid_9.click()" /></label></td> А ведь ему явно задано, что циферки должны находиться внутри href Code: $xxx = ' <td><a href="/users/1456031/"id="good">Username</a></td>; <td><a href="/users/1456032/"id="good">Username</a></td>; <td><a href="/users/1456033/"id="good">Username</a></td>; '; @yyy = $xxx =~ m#<a href="/users/(\d+)/"#gi; open(OUT, '>', 'out.txt')|| die $!; print OUT join "\n", @yyy; close OUT; Так и просто, и правильно.