Portál AbcLinuxu, 24. dubna 2024 06:21


Dotaz: perl RE 2 dotazy

1.8.2014 13:20 Terka | skóre: 13
perl RE 2 dotazy
Přečteno: 1281×
Odpovědět | Admin
v cyklu zpracovavam jednotlive radky a potrebuju preskocit radky ktere nevyhovuji RE (respektive nechat ktere vyhovuji)

..
..
next if /RE/;      #toto mi chodi
$line =~ s:A:a:g;  #toto pouzivam bezne a rada bych znala zda nasledujici radek:
$line =~ m/RE/;    #(ktery mi nechodi protoze to je jen podminka) lze zapsat nejak syntakticky podobne jako predchozi radek?
#Poradite pripadne prosim dalsi moznosti zapisu napr pomoci prikazu grep?
#jde mi o pochopeni a snadnou citelnost


diky T.
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

wamba avatar 1.8.2014 15:22 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: perl RE 2 dotazy
Odpovědět | | Sbalit | Link | Blokovat | Admin
co by to mělo dělat? dát regulární výraz do proměnné, pak $line=qr{RE};
This would have been so hard to fix when you don't know that there is in fact an easy fix.
5.8.2014 15:33 Terka | skóre: 13
Rozbalit Rozbalit vše Re: perl RE 2 dotazy
ma to delat to co grep - vyfiltrovat radky co vyhovuji RE
wamba avatar 5.8.2014 17:54 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: perl RE 2 dotazy
tak pomocí grepu to jde takhle:
#!/usr/bin/perl
use 5.010;
use strict;
use warnings;

our $VERSION = 0.001;
my @lines = <DATA>;

my @lines_with_re = grep { m/ RE /xms } @lines;
say @lines_with_re;

__DATA__
prvni radek
druhy RE radek
treti radek
ctvrty rádek RE
This would have been so hard to fix when you don't know that there is in fact an easy fix.
7.8.2014 18:56 luky
Rozbalit Rozbalit vše Re: perl RE 2 dotazy
foreach (grep {/RE/} <>) {
    print;
}
pripadne radky nevyhovujici:
foreach (grep {!/RE/} <>) {
    print;
}
4.8.2014 22:51 Michal Vránek | skóre: 3
Rozbalit Rozbalit vše Re: perl RE 2 dotazy
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tvuj dotaz je hodne zmateny, ale asi potrebujes toto...
while (<->) {
  next if(m/RE/); # preskoci radky, ktere vyhovuji RE 
  # TODO: dalsi zpracovani
}
7.8.2014 20:36 Kooala
Rozbalit Rozbalit vše Re: perl RE 2 dotazy
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkusil jsem se na to podivat z jineho uhlu nez ostatni, nechtelas
next if m:RE: ;
popripade
next if $line =~ m:RE: ;
?

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.