14. februar 2011 - 11:53Der er
5 kommentarer og 1 løsning
skal replace alt efter 2nd match med regex.replace
jeg har en linje som ser således ud.
"blabla - blabla blabla - blabla blabla "
blabla kan være alt fra tal/bogstaver/tegn. Det med fed skal blive tilbage. Det jeg matcher på er "-" Der kan godt forekommer flere "-", men det er alt efter den anden "-" som skal slettes.
Tja, start '^' og slut '$' betyder at pattern skal matche hele inputtet, dvs her hele linjen; '[^ ]+' betyder et eller flere tegn som ikke er mellemrum; ' - ' betyder simpelthen bindestreng omgivet af mellemrum - hvis der kan være mere en ét mellemrum, skal det være ' +- +'; ' -.*' betyder mellemrum og bindestreg efterfulgt af hvadsomhelst pånær linjeskift; paranteserne gør at man kan referere til det omsluttede, hvilket bliver gjort med '$1' i Replace.
Nu ved jeg ikke præcis hvad du skal bruge det til, men .+ eller [^ ] medtager ALLE tegn (på nær mellemrum) i den sidste, og f.eks. ændringer i RegEx indstillinger, vil give forskellige resultater, som f.eks. om linebreak medtages.
Men umiddelbart ville jeg nok gå efter "^((?:(?:[^-]*)-){2})" så bliver den ved med at søge og capture præcis ind til og med den rammer den 2. "-".
Synes godt om
Ny brugerNybegynder
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.