Expressions régulières Javascript : Comment conserver uniquement les groupes correspondants pour une expression régulière arbitraire ?
P粉574695215
P粉574695215 2024-01-16 22:01:08
0
1
430

Existe-t-il un moyen dans l'API regex JS de réécrire l'entrée afin que seuls les groupes correspondants soient conservés (dans l'ordre), mais cela fonctionne avec des expressions régulières arbitraires (y compris des expressions régulières sans capturer de groupes) ?

Par exemple pour l'expression régulière /abc([D-F]+)gh([I-K]+)/ 和输入 abcFEEDghKIKI,我想要输出 "FEEDKIKI" , puisque ce sont les parties capturées.

Cependant, l'expression régulière d'entrée peut également être /([a-zA-Z]+)/ qui renverra simplement le texte original pour la même entrée.

Si l'expression régulière est /([0-9]+)/ alors la chaîne vide sera renvoyée.

L'expression régulière sera générée par l'outil, mais il existe de nombreuses expressions régulières et je ne veux pas de code de cas particulier pour différents nombres de groupes de capture.

Idéalement, je pourrais également accéder d'une manière ou d'une autre à la durée du match dans l'entrée.

Je suppose qu'il existe un moyen de le faire via un rappel transmis à replace() (ou similaire), mais il n'est pas clair comment/s'il est possible d'obtenir l'index du groupe de capture (ou si c'est nécessaire en JS).

Essentiellement, j'essaie de reproduire ce que vous pouvez faire via l'API MatchResult en Java, où les groupes peuvent être itérés et l'index de début/fin du groupe de capture peut être trouvé. < /p>

Merci d'avance !

P粉574695215
P粉574695215

répondre à tous(1)
P粉071626364

Découvrez : Comment accéder aux expressions régulières JavaScript ? Il semble que (au moins au début) l'utilisation de exec() fera ce que je veux.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal