2009-06-04 5 views
0

Ich versuche, eine Adresse (in Französisch) aus einer Liste mit Regex zu extrahieren. hier ist das Beispiel:Adresse aus Beschreibung mit Regex extrahieren

„Warten Sie nicht, wird dieses Haus nicht lange auf dem Markt sein Bilder auf Anfrage weitergeleitet werden können

123 de la Straße - Stadt 345-555!. -1234 "

Stellen Sie sich vor, die ganze Sache ist item.description. Hier ist ein funktionierendes so weit gesetzt:

In "item.description" Ersetzen "^ \ d {1,4} des | de la | ich [^ \ s] + $" mit "was auch immer"

und die Adresse (123 de la Straße) wird korrekt mit was auch immer überschrieben werden. ABER wenn ich versuche es zu machen das einzige was von der Beschreibung ferngehalten wird, so etwas (welches dosent arbeiten):

In "item.description" ersetzen "(. ) (^ \ d {1,4} des | de la | du [^, \ s] + $) (.) "mit" $ 2 "

Was wäre der beste Weg, um die ganze Beschreibung durch nur die Adresse zu ersetzen?

Danke!

Antwort

1

Versuchen Sie, * zum ersten und letzten Token hinzuzufügen, und achten Sie auf^$ Zeichen! (Sie stimmen Anfang und Ende des Textes überein.)

"^(.*)(\d{1,4} des|de la|du [^,\s]+)(.*)$" 
+0

Dank Miroslav, versuchte ich das auch ohne Glück. Ich hätte angenommen, dass das funktioniert, aber ... sieh dir den Kommentar an, den ich auf Davids Antwort hinterlassen habe, um zu sehen, ob sich das ändert –

+0

Da dein Text mehrere Zeilen umfasst, würde ich annehmen, dass das Problem "." passt nicht zu Newline-Zeichen. Ich kenne Yahoo Pipes nicht, daher kann ich Ihnen nicht sagen, wie Sie dieses Verhalten ändern können. –

+0

Die Multiline war das Problem, ich habe nur alle
Tags vor dem Ausführen dieser Regex entfernt und es hat funktioniert. Vielen Dank! –