2016-03-19 5 views
0

Ich versuche, einen regulären Ausdruck in Java zu erstellen, um das erste Vorkommen einer Zeichenfolge (sagen wir A) zusammen mit allen folgenden Vorkommen einer anderen Zeichenfolge (sagen wir C) nach der Erster.Regulärer Ausdruck für das Finden von Suffixen beim ersten Auftreten von String

So zum Beispiel:

XAXXAXXCXC 

In diesem Fall sollte folgende Matches hergestellt werden:

AC (position 1 and 7) 
AC (position 1 and 9) 

ich mit positiven Lookbehind teilweise gelungen ist (siehe unten), aber das Problem ist, dass es ist nicht gierig, also wird A an Position 4 statt an erster Stelle genommen:

(?<=(A).{0,20})C 
+0

Was erreichen Sie mit dieser Art von Übereinstimmung in Bezug auf die Programmierung? Oder ist das nur für ein Experiment? –

Antwort

1

Endlich s ich Dies gelang durch die Kombination von possitivem und negativem Lookbehind. Aber mit einer Einschränkung, dass das A vor C zu einer bestimmten Länge (in diesem Fall 20) sein muss.

(?<=(?<!A.{0,20})(A).{0,20})C 
Verwandte Themen