web-dev-qa-db-fra.com

Python: commence avec n'importe quel caractère alpha

Comment puis-je utiliser la fonction startswith pour faire correspondre n'importe quel caractère alpha [a-zA-Z]. Par exemple, j'aimerais faire ceci:

if line.startswith(ALPHA):
    Do Something
15
teggy

Si vous souhaitez également faire correspondre des lettres non-ASCII, vous pouvez effectuer les opérations suivantes:

if line and line[0].isalpha():
40
dan04

Vous pouvez transmettre un tuple à startswiths() (en Python 2.5+) pour qu'il corresponde à l'un de ses éléments:

import string
ALPHA = string.ascii_letters
if line.startswith(Tuple(ALPHA)):
    pass

Bien entendu, pour ce cas simple, un test de regex ou l'opérateur in serait plus lisible.

11
efotinis

Une solution simple consiste à utiliser le module Python regex:

import re
if re.match("^[a-zA-Z]+.*", line):
   Do Something
6
Il-Bhima

C'est probablement la méthode la plus efficace:

if line != "" and line[0].isalpha():
    ...
3
Dave Kirby
if line.startswith((chr(x) for x in range(ord('a'), ord('z')+1)+range(ord('A'), ord('Z')+1)):
    # do processsing
    pass
0
shantanoo