Sublime Geplaatst: 29 december 2011 Rapport Geplaatst: 29 december 2011 Hi, Ik moet een regex uitvoeren op een stuk tekst, dat altijd tussen 2 div tag's staat (met unieke ID's). Dit stukje tekst bestaat helaas niet alleen uit woorden, maar ook uit tags, speciale tekens etc. Als ik normaal een stukje tekst wil matchen gebruik ik altijd de dot matcher, maar deze matched dus geen <> (html tags). Nu wil ik dus graag any character matchen (waarvoor je de . voor gebruikt) + de tags. Het is dus schijnbaar niet mogelijk om een . in een character class te gebruiken, aangezien hij dan denkt dat je een echte punt wil hebben. Bestaat er niet iets gelijks hiervoor binnen [] character classes? Of heeft iemand anders alle mogelijke combinaties van tekst? Ik heb nu dus dit: <div id=\"id1\">[\t\r\n]*(.*?)[\t\r\n]*</div>[\t\r\n]*<div id=\"id2\"> Maar hij moet gepast worden voor (wat nu dus niet werkt omdat er <b></b> tags inzitten): <div id="id1"> <b>coole tekst</b> jbla bla's. met nog meer bla's & rare tekens. </div><div id="id2"> Reageren
Hanneswasco Geplaatst: 30 december 2011 Rapport Geplaatst: 30 december 2011 In plaats van een punt kan je misschien [^\n] of [^\r\n] (Windows) gebruiken? Alles behalve een newline dus. Reageren
marcootje Geplaatst: 30 december 2011 Rapport Geplaatst: 30 december 2011 (bewerkt) Voor zover ik weet matcht een punt alles, dus ook < en >. Zie bijv deze site: . (dot) Matches any single character except line break characters \r and \n. Most regex flavors have an option to make the dot match line break characters too. The Regex Coach geeft bij mij ook een match voor wat jij geeft als regex en string. Heb je nog meer relevante code? Bewerkt: 30 december 2011 door marcootje Reageren
Sublime Geplaatst: 30 december 2011 Auteur Rapport Geplaatst: 30 december 2011 (bewerkt) Voor zover ik weet matcht een punt alles, dus ook < en >. Zie bijv deze site: . (dot) Matches any single character except line break characters \r and \n. Most regex flavors have an option to make the dot match line break characters too. The Regex Coach geeft bij mij ook een match voor wat jij geeft als regex en string. Heb je nog meer relevante code? Bedankt ja! Ik was even in de war geraakt, maar er zitten inderdaad ook newlines in de tekst. Hoe moet ik DOTALL trouwens aanzetten in The regex coach? Bewerkt: 30 december 2011 door Maikle Reageren
marcootje Geplaatst: 30 december 2011 Rapport Geplaatst: 30 december 2011 Ah ok top . Ik weet niet hoe je DOTALL aan zou moeten zetten in regex coach. Regex coach heeft overigens niet echt heel uitgebreid, en natuurlijk maar gemaakt voor 1 type regex (er zijn er heel veel, veelal verschilt het regex-dialect (enigszins) per programmeertaal). Het kan goed zijn dat DOTALL niet bestaat, evenals dat volgens mij de options/flags iets anders werken dan normaal. Verder is het wel een handig programma om regexes mee te testen. Voor DOTALL zul je dus even moeten zoeken (of een ander programma opzoeken, regex coach was zomaar een programma dat ik een keertje tegenkwam en wel handig leek, het kan goed zijn dat er betere programma's zijn ). Reageren
Sublime Geplaatst: 30 december 2011 Auteur Rapport Geplaatst: 30 december 2011 Ah ok top . Ik weet niet hoe je DOTALL aan zou moeten zetten in regex coach. Regex coach heeft overigens niet echt heel uitgebreid, en natuurlijk maar gemaakt voor 1 type regex (er zijn er heel veel, veelal verschilt het regex-dialect (enigszins) per programmeertaal). Het kan goed zijn dat DOTALL niet bestaat, evenals dat volgens mij de options/flags iets anders werken dan normaal. Verder is het wel een handig programma om regexes mee te testen. Voor DOTALL zul je dus even moeten zoeken (of een ander programma opzoeken, regex coach was zomaar een programma dat ik een keertje tegenkwam en wel handig leek, het kan goed zijn dat er betere programma's zijn ). Oke, mijn Regex werkt tenminste waar ik al heel blij mee ben . Ik gebruik normaal als tester Regex tester (als webpagina), maar als er teveel gematched moet worden loopt hij vast . Reageren
Recommended Posts
Een reactie plaatsen
Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.