Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Perl регулярка (https://forum.antichat.xyz/showthread.php?t=37879)

demonoid 13.04.2007 18:20

Perl регулярка
 
Код:

<td><a href="/users/1456036/"id="good">Username</a></td>
Требуется через регулятивное выражение считать *1456036* в переменную.
читал по этому поводу мануалы,мало-чего понял :(
Посоветуйте литературу.

KSURi 13.04.2007 18:37

my $str = '<td><a href="/users/1456036/"id="good">Username</a></td>';
$str =~ /(\d+)/;
print $1;

flipper 13.04.2007 18:47

$a=~/<a href="\/users\/(\d*)\/"/;

demonoid 13.04.2007 18:58

Цитата:

Сообщение от flipper
$a=~/<a href="\/users\/(\d*)\/"/;

А если на странице много форм
Код:

<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>;

И каждую нада записать впеременную?

flipper 13.04.2007 19:07

Писал исходя из личного опыта, но могу порекомендовать заглянуть в избарнное->books там видел хорошие книжки по perl'у

KSURi 13.04.2007 19:48

Цитата:

$a=~/<a href="\/users\/(\d*)\/"/;
Ну и на кой ляд стока лишнего?

При условии, что сорец страницы находится в $source:
Код:

my @digits = $str =~ /\d+/g;

demonoid 13.04.2007 19:56

Ох нада было сразу сказать вам всю правду ! :)
Пытаюсь ник граббер зделать
Вот кусок страницы

Код:

.........................................................
          </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*- записать в файл.

demonoid 13.04.2007 20:09

Извяюсь шо заебав :) больше не буду

genom-- 13.04.2007 20:15

вообщем делай сначала так $ans=~s/<[^<a href=]+>//ig; -- поидее должно снести все теги кроме <a href="/album/1454793/" id="girl">

а дальше уже как было показано выше только в цикле

KSURi 13.04.2007 20:32

да на*** вы чето в регесп суете, если человек говорит, что ему тупо надо числа эти в файл забросить?

Код:

# $html - тут сорец страницы
my @nums = $html =~ /\d+/g;
open(OUT, '>', 'out.txt') || die $!;
print OUT join("\n", @nums);
close OUT;



Время: 14:16