Python: запускает любой альфа-символ Как я могу использовать функцию startswith для соответствия любому альфа-символу [a-zA-Z]. Например, я хотел бы сделать это: if line.startswith(ALPHA): Do Something Ответ 1 Если вы также хотите сопоставлять не-ASCII буквы, вы можете использовать str.isalpha: if line and line[0].isalpha(): Ответ 2 Вы можете передать кортеж в startswiths() (в Python 2.5+), чтобы он соответствовал любому из его элементов: import string ALPHA = string.ascii_letters if line.startswith(tuple(ALPHA)): pass Разумеется, для этого простого случая можно было бы прочитать тест регулярного выражения или оператор in. Ответ 3 Легким решением было бы использовать модуль regex python: import re if re.match("^[a-zA-Z]+.*", line): Do Something Ответ 4 Это, пожалуй, самый эффективный метод: if line != "" and line[0].isalpha(): ... Ответ 5 if line.startswith((chr(x) for x in range(ord('a'), ord('z')+1)+range(ord('A'), ord('Z')+1)): # do processsing pass Ответ 6 если вам не нужны пробелы перед строкой, if line and line.lstrip()[0].isalpha():
Ответ 1 Если вы также хотите сопоставлять не-ASCII буквы, вы можете использовать str.isalpha: if line and line[0].isalpha():
Ответ 2 Вы можете передать кортеж в startswiths() (в Python 2.5+), чтобы он соответствовал любому из его элементов: import string ALPHA = string.ascii_letters if line.startswith(tuple(ALPHA)): pass Разумеется, для этого простого случая можно было бы прочитать тест регулярного выражения или оператор in.
Ответ 3 Легким решением было бы использовать модуль regex python: import re if re.match("^[a-zA-Z]+.*", line): Do Something
Ответ 5 if line.startswith((chr(x) for x in range(ord('a'), ord('z')+1)+range(ord('A'), ord('Z')+1)): # do processsing pass