[RegEx] Zeichenketten finden, welche "foo" enthalten, ABER NICHT "bar"
ich versuche folgendes mit einem RegEx abzubilden:
der String soll "foo" enthalten, darf aber weder irgendwo davor noch irgendwo danach "bar" enthalten
ein Kollege hat mich schon auf das Stichwort lookahead / lookbehind gebracht, diese jedoch funktionieren nur, wenn ein Wort direkt vor oder nach dem anderen Wort folgen... was in meinem Fall nicht der Fall ist.
Habe bisher einige Foren durchstöbert... ohne Erfolg...
mein Ziel ist es, einen String zu manipulieren, dessen Regeln mittels eines assoziativen Arrays (regex=>replace) definiert werden... daher kommt also ein Aufsplitten in einzelne Abfragen nicht in Frage.
Aber ich vermute fast, dass ich die Idee aufgeben muss... aber vielleicht findet sich hier noch ein schlauer Kopf, der 'ne RegEx-Lösung formulieren kann...
ich versuche folgendes mit einem RegEx abzubilden:
der String soll "foo" enthalten, darf aber weder irgendwo davor noch irgendwo danach "bar" enthalten
Code:
foo tralalala moooh --> match!
tralala foo lalelu --> match!
tralala bar foo lalelu --> NO!
bar tralala foo lalelu --> NO!
tralala foo bar lalelu --> NO!
tralala foo lalelu bar --> NO!
ein Kollege hat mich schon auf das Stichwort lookahead / lookbehind gebracht, diese jedoch funktionieren nur, wenn ein Wort direkt vor oder nach dem anderen Wort folgen... was in meinem Fall nicht der Fall ist.
Habe bisher einige Foren durchstöbert... ohne Erfolg...
mein Ziel ist es, einen String zu manipulieren, dessen Regeln mittels eines assoziativen Arrays (regex=>replace) definiert werden... daher kommt also ein Aufsplitten in einzelne Abfragen nicht in Frage.
Aber ich vermute fast, dass ich die Idee aufgeben muss... aber vielleicht findet sich hier noch ein schlauer Kopf, der 'ne RegEx-Lösung formulieren kann...
Zuletzt bearbeitet: