Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Søg og erstat
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  3 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Kurt Hansen  
View profile   Translate to Translated (View Original)
 More options Sep 17 2012, 6:20 am
Newsgroups: dk.edb.programmering.perl
From: Kurt Hansen <k...@ugyldig.invalid>
Date: Mon, 17 Sep 2012 12:20:48 +0200
Local: Mon, Sep 17 2012 6:20 am
Subject: Søg og erstat
Jeg nsker at finde en streng i HTML:

<head>*</head> forst et som "start- og sluttag inklusive ALT hvad der
st r imellem dem, inklusive linjeskift o.a.".

Den streng vil jeg s erstatte med 'ingenting'.

Jeg har fors gt mig i Mac's Terminal, men det kunne jeg slet ikke finde
ud af med alle de parametre.

HTML-editoren BlueFish (jeg arbejder p Mac) kan imidlertid h ndtere
Perl i sin s gefunktion. Da jeg ikke kan se at den kan l se fra
diskfiler, har jeg taget alle mine HTML-dokumenter og koblet dem sammen
i eet langt dokument.

S indtaster jeg i s gefeltet: <head>[^<].*</head>

Der er s ledes mange forekomster af <head></head>. Det underlige er, at
n r jeg starter s gningen hopper den helt ned til linje 297, hvor der er
en <head>. selv om der er en i linje 5.

Ok, pyt med det, men n r den s finder den der er i linje 297, markerer
den ALT derfra til og med det sidste </head> p linje 46.395.

Jeg er helt blank med Perl, men mener dog at vide, at [^<] f r den til
at stoppe ved < i sluttagget?

Sp rgsm let er nu: Hvorfor stopper den ikke ved F RSTE forekomst, men
ved sidste forekomst?
--
Venlig hilsen
Kurt Hansen


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Peter Makholm  
View profile   Translate to Translated (View Original)
 More options Sep 17 2012, 7:36 am
Newsgroups: dk.edb.programmering.perl
From: Peter Makholm <pe...@makholm.net>
Date: Mon, 17 Sep 2012 13:38:49 +0200
Local: Mon, Sep 17 2012 7:38 am
Subject: Re: Søg og erstat

Kurt Hansen <k...@ugyldig.invalid> writes:
> Jeg ønsker at finde en streng i HTML:

> <head>*</head> forstået som "start- og sluttag inklusive ALT hvad der
> står imellem dem, inklusive linjeskift o.a.".

Regulære udtryk er ikke velegnede til at behandle SGML/XML lignende
sprog.

> Så indtaster jeg i søgefeltet: <head>[^<].*</head>

Oversættelse: Find strengen '<head>', efterfulgt af ét tegn der ikke er
'<', efterfulgt af så mange tegn som overhovedet muligt, efterfulgt af
'</head>'.

> Jeg er helt blank med Perl, men mener dog at vide, at [^<] får den til
> at stoppe ved < i sluttagget?

Havde du skrevet '[^<]*' havde den matchet indtil det næste '<'. Men det
ville højst sandsynligt ikke have været slut-tagget.

> Spørgsmålet er nu: Hvorfor stopper den ikke ved FØRSTE forekomst, men
> ved sidste forekomst?

Fordi kvantifiers (altså stjernen) notmalt er grådige. De matcher så
meget som overhovedet muligt. Hvis du sætter et spørgsmålstegn efter
stjernen vil den matche ikke-grådigt, altså så lidt som overhovedet
muligt.

Det vil sikkert løse dit umidelbare problem. Det vil sige:

    <head>.*?</head>

Men det virker kun fordi (og hvis) du ikke har indlejrede <head>
tags. Det bliver noget noget forfærdelig rod hvis du skal gøre noget
tilsvarende med <div> tags der kan være indlejrede.

Husk: Regulære udtryk er ikke velegnede til at behandle SGML/XML
lignende sprog!

//Makholm


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Kurt Hansen  
View profile   Translate to Translated (View Original)
 More options Sep 17 2012, 8:20 am
Newsgroups: dk.edb.programmering.perl
From: Kurt Hansen <k...@ugyldig.invalid>
Date: Mon, 17 Sep 2012 14:20:41 +0200
Local: Mon, Sep 17 2012 8:20 am
Subject: Re: Søg og erstat
Den 17/09/12 13.38, Peter Makholm skrev:

Det ville være helt usædvanligt. <head> og </head> forekommer kun een
gang i et HTML-dokument.

Jeg skal da hilse at sige at det virker. Jeg nåede ikke engang at blinke
med øjnene, før den havde erstattet alle forekomster i 46.000 linjer.

Jeg er meget glad for hjælpen og takker og bukker. Imponerende hurtigt,
fyldestgørende og forståeligt svar.
--
Venlig hilsen
Kurt Hansen


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »