2017-03-19 13 views
-2

ich die Benutzer-ID-Nummer in eine URL-Zeichenfolge übereinstimmen soll, die in der Regel ist nach id= oder /user/Regex passen jede Zahl nach bestimmten Zeichenfolgen

Beispiele:

http://dummy.url/url/path/id=7623 
http://dummy.url/url/path/user/8743 
http://dummy.url/url/path/user/56 
http://dummy.url/url/path=88772/user/890&more=87273&variables&here=76233 
http://dummy.url/url/path/id=2818372 

Ich brauche 7623 übereinstimmen, 8743, 56, 890, 2818372

Ich habe nicht viel versucht, da ich ein komplettes noob bei regex bin und ich kann nur Zahlen, alle Zahlen, also, wenn die URL irgendwelche hat, wird es ihnen auch entsprechen

Die Zahlen werden immer positive ganze Zahlen

+0

Wenn die Zahl immer am Ende sein wird, sehen Sie, wie das letzte Stück eines Stachels zu extrahieren regex. Und Sie wissen bereits, wie man Zahlen abgleicht. Es sollte nicht zu schwer sein, das herauszufinden! – chatton

+0

nein, die Nummer wird nicht immer am Ende sein –

+0

Ihr 4. Beispiel widerspricht dem. – csirmazbendeguz

Antwort

0

Sie können es tun, indem Sie definieren einen Wechsel:

(?:user\/|id=)\K\d+ 

Live demo

Erläuterung:

(?:   # Start of a non-capturing group 
    user\/  # Match `user/` 
    |   # Or 
    id=   # `id=` 
)   # End of non-capturing group 
\K\d+  # Forget matched strings then match digits 

Javascript Art und Weise:

var url = "http://dummy.url/url/path/user/56"; 
 
console.log(url.replace(/(user\/|id=)\d+/, function(match, p1) { 
 
\t return p1 + 'id'; 
 
}));

+0

'var finalUrl = url.replace ((?: user \/| id =) \ K \ d +, id); 'Irgendwelche Hinweise auf was mache ich hier falsch? –

+0

Wenn es Javascript ist, wird '\ K' nicht unterstützt. Sie müssen '\ K' entfernen und stattdessen die nicht-einfangende Gruppe in die einfangende Gruppe' (user \/| id =) \ d + 'verwandeln und daran arbeiten. Bitte überprüfen Sie das Update. – revo

Verwandte Themen