/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
VI: search/replace
Fra : Kim Emax


Dato : 07-04-03 14:53

Hey

Har nogle linie numre + mellemrum jeg vil fjerne fra en fil, hvorfor pokker
virker dette ikke?

%s/^[0-9]+ //g
%s/"^[0-9]+ "//g

Jeg får "Pattern not found: ^[0-9]+", det er sguda en valid regexp, overser
jeg noget?

Del af koden, der skal matches:

2 # design by
31 # pruit:
32 # piece of code.
33 $type = 0;
34
35 # trallalala:
36 $n = 10;
101 # a gnu is a fine animal

--
Take Care
Kim Emax - Freelance programmør
http://www.emax.dk - http://www.ayianapa.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks måske mest avancerede VinWebShop



 
 
Peter Dalgaard BSA (07-04-2003)
Kommentar
Fra : Peter Dalgaard BSA


Dato : 07-04-03 16:24

"Kim Emax" <newsgroup@remove-emax.dk> writes:

> Hey
>
> Har nogle linie numre + mellemrum jeg vil fjerne fra en fil, hvorfor pokker
> virker dette ikke?
>
> %s/^[0-9]+ //g
> %s/"^[0-9]+ "//g
>
> Jeg får "Pattern not found: ^[0-9]+", det er sguda en valid regexp, overser
> jeg noget?
>
> Del af koden, der skal matches:
>
> 2 # design by
> 31 # pruit:
> 32 # piece of code.
> 33 $type = 0;
> 34
> 35 # trallalala:
> 36 $n = 10;
> 101 # a gnu is a fine animal

Jatak, men hvilken slags regexp er det nu lige vi forstår? Følgende virker:

%s/^[0-9][0-9]* *//


--
O__ ---- Peter Dalgaard Blegdamsvej 3
c/ /'_ --- Dept. of Biostatistics 2200 Cph. N
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard@biostat.ku.dk) FAX: (+45) 35327907

Peter Jensen (07-04-2003)
Kommentar
Fra : Peter Jensen


Dato : 07-04-03 17:58

Peter Dalgaard BSA wrote:

>> Har nogle linie numre + mellemrum jeg vil fjerne fra en fil, hvorfor
>> pokker virker dette ikke?
>>
>> %s/^[0-9]+ //g
>> %s/"^[0-9]+ "//g
>>
>> Jeg får "Pattern not found: ^[0-9]+", det er sguda en valid regexp,
>> overser jeg noget?
>
> Jatak, men hvilken slags regexp er det nu lige vi forstår? Følgende
> virker:
>
> %s/^[0-9][0-9]* *//

Og hvis whitespace evt. skulle være noget andet end mellemrum (f.eks.
<TAB>), så kunne man jo bruge %s/^[0-9][0-9]*[[:space:]]*// i stedet.

--
PeKaJe

Integrity has no need for rules.

Kim Emax (07-04-2003)
Kommentar
Fra : Kim Emax


Dato : 07-04-03 20:02

Peter Dalgaard BSA wrote:

> Jatak, men hvilken slags regexp er det nu lige vi forstår? Følgende
> virker:

ikke forstået? Er godt klar over at der er forskel på måden man f.eks. i PHP
bruger preg_match() og ereg() funktionerne, men er + (en eller flere) ikke
universel? Hvordan vil jeg så gøre, hvis jeg ønsker en eller flere matches
af en række tegn? som du har angivet nedenfor? Det virker bare lidt fjollet,
hvis jeg er nød til at lave [0-9a-z_\.-][0-9a-z_\.-]* ved tjek på karakterer
foran @ i en e-mail adresse, [0-9a-z_\.-]+ er kortere...

> %s/^[0-9][0-9]* *//

Den virkede...

--
Take Care
Kim Emax - Freelance programmør
http://www.emax.dk - http://www.ayianapa.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks måske mest avancerede VinWebShop



Lars Kongshøj (07-04-2003)
Kommentar
Fra : Lars Kongshøj


Dato : 07-04-03 20:42

Kim Emax wrote:
> ikke forstået? Er godt klar over at der er forskel på måden man f.eks. i PHP
> bruger preg_match() og ereg() funktionerne, men er + (en eller flere) ikke
> universel?

Nej "+" er noget nymodens (1), overflødigt (2) pjat. (3)

(1) Første version af vi blev vist skrevet i midten af halvfjerdserne.
(2) Se omskrivning nedenfor.
(3) Jeg glemte vist en smiley. Her er den:

> Hvordan vil jeg så gøre, hvis jeg ønsker en eller flere matches
> af en række tegn?

xx* = ét eller flere x'er.

--
Lars Kongshøj
http://www.kongshoj.com/

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

Månedens bedste
Årets bedste
Sidste års bedste