JavaScript Regex Global Correspondent À Des Groupes
Mise à jour: Cette question est un doublon de cette
Je suis sûr que la réponse à ma question est là, mais je ne pouvais pas trouver les mots pour l'exprimer de manière succincte. Je suis en train de faire la suite avec JavaScript regex:
var input = "'Warehouse','Local Release','Local Release DA'";
var regex = /'(.*?)'/g;
console.log(input.match(regex));
//Actual:
//["'Warehouse'", "'Local Release'", "'Local Release DA'"]
//What I'm looking for (without the '):
//["Warehouse", "Local Release", "Local Release DA"]
Est-il un moyen propre à faire avec JavaScript regex? Évidemment, j'ai pu dépouiller le '
s moi-même, mais je suis à la recherche de la bonne façon de caputre à l'échelle mondiale appariés groupements avec des regex.
- double possible de Comment avez-vous accès à la correspondance des groupes de dans une regex en javascript?
- Yep, c'est vraiment un doublon, je n'étais pas sûr de la façon de rechercher ma question :/
- Je l'ai trouvé par la recherche de [javascript] [regex] global du groupe de capture.
Vous devez vous connecter pour publier un commentaire.
De le faire avec une expression régulière, vous aurez besoin pour effectuer une itération sur elle avec
.exec()
afin d'obtenir plusieurs groupes appariés. Leg
drapeau avec le match ne retourner plusieurs ensemble des matchs, pas de multiples sous-matchs comme tu le voulais. Voici une façon de le faire avec.exec()
.De travail de démonstration: http://jsfiddle.net/jfriend00/VSczR/
Avec certaines hypothèses sur ce qui est dans les cordes, vous pourriez tout aussi bien utiliser ce:
De travail de démonstration: http://jsfiddle.net/jfriend00/MFNm3/
/<img[^>]+?src=(?:(?:'([^']*)')|(?:"([^"]*)")|([^\s]*))/i
de console et de ne pas répondre et de chrome à l'aide de 1 plein cœur de processeurg
modificateur. Maintenant c'est oknull
, mais est falsey qui rendrait le code d'origine ne fonctionne pas? C'est bizarre..exec()
doit retourner un tableau ounull
de sorte que le code d'origine doit détecter aucun match de l'amende juste..exec()
retourne, le code n'est pas meilleure ou plus sûr en changeant de!== null
. C'est juste un trop prudente avertissement par jsHint.Pas très générique solution depuis lookbehind n'est pas pris en Javascript, mais pour une entrée donnée cette expression devrait fonctionner:
Essayer quelque chose comme
input.replace(regex, "$1")
pour obtenir les résultats de votre groupe de capture.input.replace(regex, "$1").split(',')
,
s en elle.regex = /'(.*?)'(,?)/g;
etinput.replace(regex, "$1$2$2").split(',,')
cette regex fonctionne, mais avec des personnages...
Il y a un ECMAScript proposition
String.le prototype.matchall peut()
qui permettrait de répondre à vos besoins.EDIT: Cela ne fonctionne pas en javascript, mais il fonctionne en java. Désolé combat qui.
oui, ça s'appelle un "look ahead" et un "regarder derrière"
tester ici