-1
votes

Regez le chiffre correspondant entre les deux?

Je voudrais obtenir le numéro entre ces chaînes.

for string in strings:
    print(re.findall("(?<=account)(.*)", string.lower()))


2 commentaires

r '(? <= \ d) \ d [^ a-za-z] + \ b' 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.


3 Réponses :


1
votes

Essayez ce motif: xxx

panne:

  • (? = [^ 0-9] *) lookahead pour un mot, tel que "compte", non correspondant
  • [0-9] Trouver un chiffre
  • [0-9 .-] * 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)
  • [0-9] Trouvez un autre chiffre (pour empêcher les espaces à la fin)

    Vérifiez-le ici et échantillon de code ICI


0 commentaires

0
votes
(?!\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 ]

0 commentaires

0
votes

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)


0 commentaires