5 Stimmen

VBA regex - Übereinstimmung mit einem Ausdruck, der nicht mit einem bestimmten Wort beginnt

Ich möchte einen regulären VBA-Ausdruck erstellen, der das Vorhandensein von zwei bestimmten Zeichenfolgen innerhalb einer Reihe von Klammern findet.

Zum Beispiel in diesem Ausdruck:

(aaa, bbb, ccc, ddd, xxx aaa)

sollte es mir irgendwie mitteilen, dass es sowohl "aaa" als auch "xxx aaa" in dem Ausdruck gefunden hat. D.h., da es eine Übereinstimmung mit "aaa" ohne das vorangestellte "xxxx" gibt, und es auch eine Übereinstimmung mit "xxx aaa" später im Ausdruck gibt, sollte er true zurückgeben. Da diese beiden Sequenzen in beliebiger Reihenfolge vorkommen können, sollte auch der umgekehrte Fall zutreffen.

Ich denke also, dass der Ausdruck/die Ausdrücke in etwa so lauten würden:

"( xxx aaa" [^x][^x][^x][^x] aaa )"

um die Wörter in einer Reihenfolge zu finden und

"( aaa" [^x][^x][^x][^x] xxx aaa )"

für die Wörter in einer anderen Reihenfolge.

Ergibt das einen Sinn? Oder gibt es einen besseren Ansatz?

Ich weiß, dass dies eine Änderung der Spezifikation bedeutet, aber es gibt einen wichtigen Zusatz - es dürfen keine Klammern zwischen den Begriffen stehen.

So sollte zum Beispiel dies nicht übereinstimmen:

(aaa, bbb, ccc, ddd, (eee, xxx aaa))

Mit anderen Worten: Ich versuche, nur zwischen passenden Klammern zu suchen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X