Existe-t-il un moyen simple d'ignorer les espaces dans une chaîne cible lors de la recherche de correspondances à l'aide d'un modèle d'expression régulière? Par exemple, si ma recherche porte sur "chats", je voudrais que "c ats" ou "ca ts" corresponde. Je ne peux pas supprimer les espaces au préalable car je dois trouver les index de début et de fin de la correspondance (y compris les espaces) pour mettre en surbrillance cette correspondance et tous les espaces doivent être présents à des fins de formatage.
Réponses
Trop de publicités?L'adressage de Steven commentaire Sam Dufel réponse
Merci, on dirait que c'est le chemin à parcourir. Mais je viens de réaliser que je ne veux l'option espaces si elles suivent un retour à la ligne. Ainsi, par exemple, "c\n ats" ou "ca\n ts" doit correspondre. Mais ne veux pas de "c ats" match si il n'y a pas de saut de ligne. Toutes les idées sur la façon dont cela pourrait être fait?
Ceci devrait faire l'affaire:
/c(?:\n\s*)?a(?:\n\s*)?t(?:\n\s*)?s/
Voir cette page pour toutes les variantes de "chats" qui correspond.
Vous pouvez également résoudre ce à l'aide des instructions conditionnelles, mais ils ne sont pas pris en charge dans le javascript saveur de regex.
Vous pouvez mettre \s*
entre chaque caractère de votre chaîne de recherche. Ainsi, si vous recherchez un chat, vous utiliseriez c\s*a\s*t\s*s\s*s
C'est long mais vous pouvez bien sûr construire la chaîne de manière dynamique.
Vous pouvez le voir fonctionner ici: http://www.rubular.com/r/zzWwvppSpE
Je crois que la réponse facile est le mode Espacement libre .