sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #93946
Re: regulære udtryk og mig....
Kristian Vilmann <kvi@xxxxxxxx> writes:
> Opgaven er faktisk ret nem:
> Find en linie der indeholder strengen "QLogic" og starter på position 0
> Slet denne linie og alle efterfølgende linier, der ikke starter på
> position 0.
> Stop når der rammes en linie der igen starter på position 0. (Denne
> linie må ikke slettes.)
I perl:
s/^\w+\s+QLogic.*?(?=^\w)//ms
Eller uden lookahead hvis man ønsker:
s/^\w+\s+QLogic.*?(^\w)/$1/ms
Og med kommentare:
s{ ^\w+ \s+ # En linje der begynder på pos=0
QLogic # Med en tekst der begynder med QLogic
.*? # Match indtil ...
(?=^\w) # en linje der begynder i pos=0
}{}xms; # x - tillad ekstra mellemrum og kommentare
# m - $ og $ matcher på linjeniveau og ikke strengniveau
# s - dot matcher newline
> Man kunne jo bikse et perl-script sammen til formålet, men kan det ikke
> gøres smartere?
Det ved jeg nu ikke. Hvis du skal have hjælp til ovenstående, men selv
kan bikse et perlscript sammen, hvad vil du så helst skulle
vedligeholde op 3 måneder?
//Makholm
Follow ups
References