Comment puis-je match de suite, mais exclure une expression régulière pattern?
J'ai cette URL:
http://example.com/createSend/step4_1.aspx?cID=876XYZ964D293CF&snap=true&jlkj=kjhkjh&
Et cette regex modèle:
cID=[^&]*
Qui produit ce résultat:
cID=87B6XYZ964D293CF
Comment puis-je SUPPRIMER le "cID="?
Grâce
- quelle langue? travaillez-vous dans?
- Qui regex analyseur utilisez-vous?
- Désolé, j'aurais dû être plus précis. Je travaille en javascript
Vous devez vous connecter pour publier un commentaire.
Vous pouvez soit utiliser lookbehind (pas de Javascript):
Ou vous pouvez utiliser de regroupement et de saisir le premier groupe:
Généralement, d'accomplir quelque chose de ce genre, vous avez au moins 3 options:
substring
du matchRéférences
jsref
-chaîne
Exemples
Compte tenu de cette chaîne de test:
Ce sont les matches de certains modèles regex:
\d+ cats
->16 cats
(voir sur rubular.com)\d+(?= cats)
->16
(voir sur rubular.com)(\d+) cats
->16 cats
(voir sur rubular.com)16
Vous pouvez également faire plusieurs captures, par exemple:
(\d+) (cats|dogs)
donne 2 résultats d'un match (voir sur rubular.com)35 dogs
35
dogs
16 cats
16
cats
Par l'aide de la capture de groupes:
puis $1:
Avec JavaScript, vous aurez envie d'utiliser un groupe de capture (mettre la partie que vous souhaitez capturer à l'intérieur de
()
) dans votre expression régulièreVoici le code Javascript:
Il y a une syntaxe particulière en javascript qui permet d'exclure les indésirables match du résultat. La syntaxe est "?:"
Dans votre cas, la solution serait la suivante
'http://example.com/createSend/step4_1.aspx?cID=876XYZ964D293CF&snap=true&jlkj=kjhkjh&'.match(/cID=+([^&]*)/)[1];
est plus simple car il ne nécessite pas la non-capture de groupe et renvoie le même résultat que votre exemple.