2016-09-14 4 views
0

Ok erfassen, damit ich Input in Form vonregulärer Ausdruck für mehrere Ziffern in einer Gruppe

textsem:Predicate xmi:id="1695" sofa="1" begin="67" end="71" relations="1869 1879 1889" frameSet="lead.03" 

& &

textsem:Predicate xmi:id="1709" sofa="1" begin="135" end="142" relations="1842 1852" frameSet="lead.03" 

Ich habe nur die Beziehungen mit regulären Ausdrücken extrahieren möchte und fügen Sie die Werte zu einer Liste.

Der reguläre Ausdruck Ich verwende ist:

(relations=)(")(\d+\s*)+(") 

aber wenn ich versuche, Gruppe anhängen (3) auf meiner Liste nur in jeder Zeile den letzten Wert zu erfassen. d. h. in der obigen Beispieleingabe werden nur 1889 und 1852 erhalten, und ich weiß nicht, warum. Jede Hilfe wird geschätzt.

Danke!

Antwort

0

Ah war die Antwort der + quantifier in der Gruppe für die Gruppen 3 d

(relations=)(")((\d+\s*)+)(") 

Dank beilegen!

+0

Verwendung: 'relations =" ​​((?: \ D + \ s *) +) "' – anubhava

+0

Die Regex, die ich gepostet habe, erfasst, was ich brauche. Gibt es einen Vorteil bei der Verwendung von relations = "((?: \ D + \ s *) +)"? – jdv12

+2

Sie haben unnötige Gruppen, aber Sie brauchen nur eine Gruppe. – anubhava

Verwandte Themen