/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
rexexp over flere linier
Fra : DUdsen


Dato : 14-06-02 16:46

Er det mugligt at lave et mønster der stater når den møder et
mønster på en linie og fortsætter indtil den den når et anden
mønster selvom der gør flere linier inden den møder det andet
mønster.
npget i stil med
/trigger1\mtrigger2/ det skal bruges til at editere i en række
filer på en gang

--
Daniel Udsen <dudsen@gjk.dk>
Køer er gudommlige www.koen.dk

 
 
Bjørn Hee (14-06-2002)
Kommentar
Fra : Bjørn Hee


Dato : 14-06-02 18:13

DUdsen wrote:

> Er det mugligt at lave et mønster der stater når den møder et
> mønster på en linie og fortsætter indtil den den når et anden
> mønster selvom der gør flere linier inden den møder det andet
> mønster.
> npget i stil med
> /trigger1\mtrigger2/ det skal bruges til at editere i en række
> filer på en gang
>
>


Med s-optionen matcher "." osse "newline", så:


/trigger1.*trigger2/s

--
MVH Bjørn Hee <b@h33.dk> L|J(_) C
http://www.h33.dk/ | (¨) Z
"Sproget forfalsker virke- |\/ \ -
ligheden" - Nietzsche |FBSD X


DUdsen (14-06-2002)
Kommentar
Fra : DUdsen


Dato : 14-06-02 19:00

Bjørn Hee wrote:

> DUdsen wrote:
>
>> Er det mugligt at lave et mønster der stater når den møder et
>> mønster på en linie og fortsætter indtil den den når et anden
>> mønster selvom der gør flere linier inden den møder det andet
>> mønster.
>> npget i stil med
>> /trigger1\mtrigger2/ det skal bruges til at editere i en række
>> filer på en gang
>>
>>
>
>
> Med s-optionen matcher "." osse "newline", så:
>
>
> /trigger1.*trigger2/s

her er prblemet s/trigger.*trigger/\snytekst/g virker ikke
kan jeg ikke bruge \s sammen med erstat funktionen.
Og i givet fald hvordan tester jeg om det er der hunden ligger
begravet

--
Daniel Udsen <dudsen@gjk.dk>
Køer er gudommlige www.koen.dk

Peter Brodersen (14-06-2002)
Kommentar
Fra : Peter Brodersen


Dato : 14-06-02 20:07

On Fri, 14 Jun 2002 20:00:06 +0200, DUdsen <dudsen@gjk.dk> wrote:

>her er prblemet s/trigger.*trigger/\snytekst/g virker ikke
>kan jeg ikke bruge \s sammen med erstat funktionen.

s/trigger.*trigger/nytekst/gs

--
- Peter Brodersen

DUdsen (14-06-2002)
Kommentar
Fra : DUdsen


Dato : 14-06-02 21:07

Peter Brodersen wrote:

> On Fri, 14 Jun 2002 20:00:06 +0200, DUdsen <dudsen@gjk.dk>
> wrote:
>
>>her er prblemet s/trigger.*trigger/\snytekst/g virker ikke
>>kan jeg ikke bruge \s sammen med erstat funktionen.
>
> s/trigger.*trigger/nytekst/gs

Er det mig der laver en stor fejl? jeg kan ikke få det til at
dudsen@dhcp0404 ~ $ cat sqltest
create database test (
tal integer,
navn varchar(50),
kommentar blob
dudsen@dhcp0404 ~ $ cat sqltest |perl -ne 'print if
(/create.*tal/s)'

vi er enige om at denne burde printe create database test (
tal interger, eller har jeg ikke fattet noget af det.
--
Daniel Udsen <dudsen@gjk.dk>
Køer er gudommlige www.koen.dk

Lars Balker Rasmusse~ (14-06-2002)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 14-06-02 21:38

> Er det mig der laver en stor fejl? jeg kan ikke få det til at
> dudsen@dhcp0404 ~ $ cat sqltest
> create database test (
> tal integer,
> navn varchar(50),
> kommentar blob
> dudsen@dhcp0404 ~ $ cat sqltest |perl -ne 'print if
> (/create.*tal/s)'
>
> vi er enige om at denne burde printe create database test (
> tal interger, eller har jeg ikke fattet noget af det.

-n læser en linie af gangen. For at få den til at læse hele filen, så brug
perl -0777 -ne

"perldoc perlrun" for dokumentation af -0
--
Lars Balker Rasmussen                  "S.M.R.T."

DUdsen (15-06-2002)
Kommentar
Fra : DUdsen


Dato : 15-06-02 11:30

Lars Balker Rasmussen wrote:

>> Er det mig der laver en stor fejl? jeg kan ikke få det til at
>> dudsen@dhcp0404 ~ $ cat sqltest
>> create database test (
>> tal integer,
>> navn varchar(50),
>> kommentar blob
>> dudsen@dhcp0404 ~ $ cat sqltest |perl -ne 'print if
>> (/create.*tal/s)'
>>
>> vi er enige om at denne burde printe create database test (
>> tal interger, eller har jeg ikke fattet noget af det.
>
> -n læser en linie af gangen. For at få den til at læse hele
> filen, så brug
> perl -0777 -ne
>
> "perldoc perlrun" for dokumentation af -0

Der var den hvorfor står sådan noget gemt 200 linier inde i
perldoc filen.
Tak for den hurtige hjælp.

--
Daniel Udsen <dudsen@gjk.dk>
Køer er gudommlige www.koen.dk

Peter Makholm (14-06-2002)
Kommentar
Fra : Peter Makholm


Dato : 14-06-02 21:16

DUdsen <dudsen@gjk.dk> writes:

> dudsen@dhcp0404 ~ $ cat sqltest |perl -ne 'print if
> (/create.*tal/s)'
>
> vi er enige om at denne burde printe create database test (
> tal interger, eller har jeg ikke fattet noget af det.

Nej. Selvom at dit regulære udtryk virker på flere linjer, så bliver
der med -n stadigvæk kun læst en linje ind ad gange.

--
Peter Makholm | I have something to say: It's better to burn in
peter@makholm.net | hell, than to fade away!
http://hacking.dk | -- Kurgan

Martin Moller Peders~ (14-06-2002)
Kommentar
Fra : Martin Moller Peders~


Dato : 14-06-02 17:45

In <1024069825.369210@kalvebod.groenjord.dk> DUdsen <dudsen@gjk.dk> writes:

>Er det mugligt at lave et mønster der stater når den møder et
>mønster på en linie og fortsætter indtil den den når et anden
>mønster selvom der gør flere linier inden den møder det andet
>mønster.
>npget i stil med
>/trigger1\mtrigger2/ det skal bruges til at editere i en række
>filer på en gang

Du kan f.x. saette $/=undef dvs. at $_ bliver hele filen.

Mvh
Martin


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408927
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste