Je voudrais obtenir le numéro entre ces chaînes.
for string in strings:
print(re.findall("(?<=account)(.*)", string.lower()))
3 Réponses :
Essayez ce motif: panne: p>
(? = [^ 0-9] *) code> lookahead pour un mot, tel que "compte", non correspondant li>
[0-9] code> Trouver un chiffre li>
[0-9 .-] * code> Trouvez un nombre de chiffres ou de caractères spéciaux (dans vos cordes, vous avez des espaces, des tirets, des périodes donc j'ai inclus celles) li>
[0-9] code> Trouvez un autre chiffre (pour empêcher les espaces à la fin) li>
ul>
(?!\W)([\d\s.-]+)(?<!\s) The negative lookahead and lookbehind seems like overkills here but I wasn't able to get a clean match otherwise. You may see the results here(?!\W) Negative lookahead to exclude any non-word characters [^a-zA-Z0-9_]([\d\s.-]+) The capturing group for your numbers(?<!\s) Negative lookbehind to exclude whitespace characters [\r\n\t\f\v ]
Si les chiffres doivent être les premiers numéros après le compte code> (code> SUBSTRING UTILISEZ
re.findall("account\D*([\d\s.-]*\d)", s)
r '(? <= \ d) \ d [^ a-za-z] + \ b' code> semble fonctionner.Veuillez envisager d'accepter la réponse (voir Comment accepter ainsi les réponses ) que travaillé le mieux pour vous et évitez toutes les réponses qui vous ont été prouvées utiles.