Je suis un peu rouillé sur ma regex et ma javascript. J'ai la chaîne suivante var: je veux extraire appliqué comme: p> Le résultat est le suivant: P> 5 code> à l'aide d'une regex. Ceci est mon regex: p> loadNewsItemWithIndex(5
3 Réponses :
Je crois que la regex suivante devrait fonctionner pour vous:
loadNewsItemWithIndex = exactly that \( = open parentheses ([0-9]+) = Capture the number .* = Anything after that number $ = end of the line
Vous étiez correct. Je l'ai ajouté quand je l'ai pensé dans ma tête et je ne l'ai jamais supprimé.
donc . * $ code> pour la même raison
La valeur de retour de code exemple: http: // jsfiddle.net/lt62w/ p> En fait, ça fonctionne parfaitement. Texte qui correspond à l'intérieur d'un
le groupe de non-capture est toujours consommé, le même que le texte correspondant
en dehors de tout groupe. Un groupe de capture est comme un groupe de non-capture
avec une fonctionnalité supplémentaire: en plus du regroupement, cela vous permet de
extraire tout ce qu'il correspond indépendamment de la correspondance globale. P>
blockQuote> p> string.match code> est une matrice de correspondances, de sorte que vous pouvez mettre des parenthèses autour de la partie de numéro et que vous récupérez simplement cet index de correspondance particulier (où le premier match est le résultat correspondant complet, et les entrées suivantes sont pour chaque groupe de capture):
Le match de non-capture ne fonctionne apparemment pas correctement. Code> Je savais qu'il y avait des comportements de regex étranges dans JavaScript, mais cependant que ce problème était un peu rouillé.
En fait, cela fonctionne parfaitement. Le texte qui correspond à l'intérieur d'un groupe non capturant est toujours consommé i>, de la même manière que le texte correspondant en dehors de tout groupe. Un groupe de capture est comme un groupe non capturant avec une fonctionnalité supplémentaire: en plus du regroupement, il vous permet d'extraire tout ce qu'il correspond indépendamment de la correspondance globale.
... et l'indexation sur le tableau des résultats correspond à des numéros de «groupe» de Regex (qui commencent à 1).
Cela devrait suffire:
<script> var subject = "javascript:loadNewsItemWithIndex(5, null);"; number = subject.match(/[0-9]+/); alert(number); </script>
Meilleure réponse avec le contexte fourni