Avatar billede tangveje Nybegynder
15. april 2005 - 19:31 Der er 5 kommentarer og
1 løsning

Alle mellemrum der ikke er i gåseøjne

Jeg bruger denne lille expression til at finde alle mellemrum (1 eller flere) i en tekst

"[ ]+"

Problemet er at jeg ikke vil have at den tager mellemrum med, hvis de er omgivet af " tegn. Feks. hvis jeg har denne sætning

en "to tre" fire

skal mellemrummet mellem 'to' og 'tre' ikke tages med.

Hvordan gør jeg det?
Avatar billede ranglen Nybegynder
15. april 2005 - 21:27 #1
regexp i php, erstatter mellemrum med '-' :

$text = 'en "to tre" fire';
echo preg_replace('/(".*?")?(?<!$1) /', '$1-', $text);
Avatar billede tangveje Nybegynder
15. april 2005 - 21:53 #2
Ikke sikker på jeg er helt med.

Det jeg prøver er at splitte en tekst op. Hvis jeg har teksten fra før skulle jeg få dette array :

arr[0] => 'en'
arr[1] => '"to tre"'
arr[2] => 'fire'

Problemet er at jeg får dette

arr[0] => 'en'
arr[1] => '"to'
arr[2] => 'tre"'
arr[3] => 'fire'

Her er min kode (det er python, men skulle ikke være svært at forstå)

import re

fh = open( 'test.txt', 'r' )

i = 0
lines = {}

while (1) :
    line = fh.readline( )
    if ( line == '' ) :
        break
    line = re.sub( "\n", "", line )
    lines[i] = line
    i = i + 1

version = float( lines[0][5:8] )

caps = re.split( "[ ]+", lines[2] )

array = {}

i = 0
j = 3

ln = len( lines ) - 3

while ( i < ln ) :
    array[i] = {}
   
    vals = re.split( "[ ]+", lines[j] )  # <--- Denne linie
   
    k = 1
   
    while ( k < len( caps ) ):
        array[i][caps[k]] = vals[k]
        k = k + 1

    i = i + 1
    j = j + 1

print vals

fh.close( )
Avatar billede ranglen Nybegynder
15. april 2005 - 23:13 #3
prøv

vals = re.findall( "\".+?\"|[^ ]+", lines[j] )  # <--- Denne linie
Avatar billede tangveje Nybegynder
15. april 2005 - 23:39 #4
Ser sgu ud til at virke. Tak for hjælpen, lægger du et svar?
Avatar billede ranglen Nybegynder
16. april 2005 - 00:43 #5
ok. En lille ændring: "\".+?\"|[^ \"]+"

nu splitter den også, efter 'en', hvis strengen ser sådan ud: en"to tre" fire
Avatar billede tangveje Nybegynder
16. april 2005 - 01:12 #6
Tak for hjælpen :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester