2016-08-04 3 views
0

Ich habe spezielle Tag als "{code}". Ich brauche etwas Text zwischen zwei dieser Tags mit jflex.So erhalten Sie Text zwischen speziellen Tags mit Hilfe von jflex

Ich versuche folgende Regex zu verwenden, um es

CODE_BLOCK= "{code}"(.*?)"{code}" 

Das Problem ist, dass es nur zuerst eine letzte Tags immer wieder Text dazwischen. Sieht aus wie ? funktioniert überhaupt nicht. Ich brauche eine Möglichkeit zu haben, nur

{code}abs{code} 

von

{code}abs{code}{code}{code} 

Antwort

0

zu bekommen Es gibt ein paar verschiedene Möglichkeiten:

Wenn die Klammer Klammer ({) Zeichen in Ihrem Text erscheint Sie können mit {code}([^{]+){code} als Regex gehen.

Wenn dies der Fall ist und es ausgeblendet wird, können Sie etwas wie {code}((?:[^{]|\\{)+){code} tun. Ersetzen Sie die \\ durch das entsprechende Escape-Zeichen (in diesem Fall habe ich mit der üblichen Konvention eines Literal Backslash-Zeichen gegangen).

Wenn es zwischen den Tags erscheint und es nicht maskiert ist, sollten Sie vielleicht einen passenden Parser schreiben, weil Regex für diese Art von Dingen nicht wirklich geeignet ist.

Verwandte Themen