J'ai une chaîne et une position dans cette chaîne. Je souhaite savoir si le dernier caractère non espace avant que cette position soit l'un des caractères d'un ensemble donné. Puis-je faire cela en utilisant regex? Je ne pouvais pas comprendre moi-même seul. P>
exemple avec un ensemble de caractères (?, |,!): p>
foo ('bla? test', pos = 6) est vrai code> p>
foo ('bla? test', pos = 7) est faux code> p>
5 Réponses :
supposant que vous voulez 0 chaînes indexées
avec une certaine aide de regex: la largeur zéro postive lookahead . * (\ s) (? = \ s * $) code>: p>
. * code> correspond à tous les caractères jusqu'au dernier caractère sans espace p> li>
(\ s) code> correspond au dernier caractère non espace et mettez-le dans un groupe capturé p> li>
(? = \ s * $) code> Assure que le motif est suivi d'espaces zéro-more seulement jusqu'à la fin de la fin de la fin p> l>
ul> p>
Vous n'avez pas vraiment besoin de regex pour cela. Vous pouvez utiliser très facilement renvoie tout code> et la compréhension de liste em>. true code>. P> < P> Changer s [4] code> sur s [5] code> Résultats dans False code> P> P> P> P>
Vous n'avez pas besoin d'utiliser une regex: si vous deviez em> utiliser une regex: p>
Vous n'avez pas besoin de regex ici. Retirez les espaces à la fin d'une tranche, si elles sont et comparez le dernier char
Il est certainement possible de le faire avec regex ... qu'avez-vous essayé jusqu'à présent?
Vos postes d'index ne correspondent pas aux résultats.
Est
POS code> 0-indexé?L'index 6 devrait être
t code> danstest code>. C'est 0-indexé.@ T.Poe Comment le résultat est-il vrai pour l'index 6?