Comment utiliser les expressions régulières ne recherche inverse?
Par exemple:
Ma chaîne est: 123456789 nn nn oo nn nn mlm nn203
.
Mon objectif est le suivant: nn
.
Ensuite, j'ai match de chaîne à partir de la fin au début et à retourner le premier résultat du match et de sa position.
Dans ce examlpe, le résultat est nn
débute en [-5] fin [-3].
J'ai écrit le simple funcitonto faire de ce processus, mais comment utiliser les expressions régulières pour faire ce travail?
Hm, si le terme de recherche a 'na', aimeriez-vous qu'elle corresponde à l'avant ou à l'inverse dans la chaîne (c'est à dire homme du match ou le nom)?
OriginalL'auteur Aurel Vlaicu | 2013-05-12
Vous devez vous connecter pour publier un commentaire.
Pour la chaîne elle-même, il suffit de faire un findall et d'utiliser la dernière:
Imprime
nn5
Vous pouvez aussi faire la même chose en utilisant
finditer
qui rend plus facile de trouver les indices pertinents:Imprime
('nn5', 27, 30)
Si vous avez beaucoup de matches et que vous souhaitez seulement le dernier, il est parfois utile de simplement inverser la chaîne et le modèle:
Imprime
nn5
search
n'existe pas après la boucle est terminée.)Dans le lien que j'ai donné, vous obtiendrez un message d'erreur si vous n'obtenez pas de résultats, même si (assurez-vous de le gérer).
Puis-je vous demander pourquoi le downvote?
OriginalL'auteur dawg
Tout d'abord, si vous n'êtes pas à la recherche d'une expression régulière,
string.rfind
est beaucoup plus facile d'obtenir le droit.Vous pouvez utiliser une expression régulière en utilisant une anticipation négatif, consultez la documentation de re:
OriginalL'auteur Thomas Fenzl
Idée:
Exemple:
OriginalL'auteur Robert Lujo