Regulärer Ausdruck mit Wagenrücklauf

8

Ich versuche einen regulären Ausdruck zu schreiben, um den Wert, der dem Wort "Total" folgt, zu schreiben, aber ich bin nicht sicher, wie ich mit dem Wagenrücklauf umgehen soll, was bedeutet, dass ich über zwei getrennte Zeilen suche. Weiß jemand den besten Weg, sich diesem zu nähern?

%Vor%     
cuthbert 03.04.2011, 22:14
quelle

4 Antworten

6

In Regex sollten Sie die \r verwenden, um den Wagenrücklauf abzufangen, und \r\n , um die Zeilenumbrüche abzufangen

    
pcofre 03.04.2011 22:19
quelle
3

Sie sollten die Regex-Option verwenden Punkt entspricht Newline (falls unterstützt).

z. In .NET könnten Sie dazu RegexOptions.Singleline verwenden. Es spezifiziert den einzeiligen Modus. Ändert die Bedeutung des Punktes ( . ), so dass er mit jedem Zeichen übereinstimmt (anstelle von jedem Zeichen außer \n ).

Der nächste Ausdruck:

%Vor%

stimmt mit den Werten für £ 198.98 und £ 333.98 überein.

    
Alex 04.04.2011 10:04
quelle
0

Füge s Modifikator zu deiner Regex hinzu. s bedeutet, dass die Zeichenfolge als einzelne Zeile behandelt wird. Warum entfernst du Wagenrücklauf nicht zuerst mit str_replace zuerst? Ups, kein PHP-Tag.

    
Dejan Marjanovic 03.04.2011 22:17
quelle
0

Wenn Sie s hinzufügen, um die einzelne Zeile zu kennzeichnen, können Sie dann (z. B. wenn Windows)

verwenden

^Total\r\n£([ 0-9.]+)\r\n" , um die Gesamtwerte zu extrahieren.

(nicht getestet, die Klammern sollten sicherstellen, dass es als Gruppenwert angezeigt wird)

    
BugFinder 03.04.2011 22:20
quelle

Tags und Links