Regex - Zahlen nach einer bestimmten Zeichenkette erhalten

8

Ich habe eine Textzeichenfolge, die beliebig viele Zeichen haben kann, an die ich am Ende eine Bestellnummer anhängen möchte. Dann kann ich die Bestellnummer abreißen, wenn ich sie nochmal benutzen muss. Da es eine Möglichkeit gibt, dass die Zahl eine variable Länge hat, würde ich gerne einen regulären Ausdruck machen, der alles nach dem = -Zeichen in der Zeichenkette ?order_num=

abfängt

Also wäre die ganze Zeichenfolge

%Vor%

Ich habe versucht, den Online-Generator für reguläre Ausdrücke zu verwenden, aber ohne Erfolg. Kann mir jemand bitte helfen, die Nummer am Ende zu extrahieren und in eine Variable zu setzen und etwas was vor dem ?order_num=203823 steht in eine eigene Variable zu legen.

Ich werde einige eigene Versuche veröffentlichen, aber ich sehe Versagen und Verwirrung voraus.

    
1252748 04.06.2012, 22:40
quelle

3 Antworten

18
%Vor%

Denken Sie jedoch daran, dass reguläre Ausdrücke langsam sind. Verwenden Sie indexOf und substring / slice , wenn Sie können. Zum Beispiel:

%Vor%     
MaxArt 04.06.2012, 22:44
quelle
9

Ich sehe keine Notwendigkeit für Regex dafür:

%Vor%

n ist dann ein Array, wobei der Index 0 vor dem? und Index 1 ist nach.

Ein anderes Beispiel:

%Vor%

Gibt Ihnen das Ergebnis: n[0] = aijfoi aodsifj adofija afdoiajd und n[1] = 3216545

    
Simon Forsberg 04.06.2012 22:44
quelle
2

Sie können ab der ersten Instanz von ? und dann regex substringieren, um die meisten Komplexitäten im Ausdruck loszuwerden und die Leistung zu verbessern (was wahrscheinlich sowieso vernachlässigbar ist und nichts, worüber Sie sich Sorgen machen müssen, wenn Sie es nicht tun dies über Tausende von Iterationen). Darüber hinaus wird order_num= an jedem Punkt innerhalb der Querystring übereinstimmen, nicht unbedingt nur am Ende der Querystring.

%Vor%     
Ben Taber 04.06.2012 23:06
quelle

Tags und Links