26

startwith関数を使用して任意の英字[a-zA-Z]と一致させるにはどうすればよいですか。たとえば、私はこれをしたいと思います:

if line.startswith(ALPHA):
    Do Something
4

6 に答える 6

56

非ASCII文字も照合する場合は、次を使用できますstr.isalpha

if line and line[0].isalpha():
于 2010-03-07T10:08:43.117 に答える
13

タプルをstartswiths()(Python 2.5以降では)に渡して、その要素のいずれかに一致させることができます。

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

もちろん、この単純なケースでは、正規表現テストまたはin演算子の方が読みやすくなります。

于 2010-03-07T10:03:03.433 に答える
8

簡単な解決策は、pythonregexモジュールを使用することです。

import re
if re.match("^[a-zA-Z]+.*", line):
   Do Something
于 2010-03-07T09:56:30.873 に答える
3

これはおそらく最も効率的な方法です。

if line != "" and line[0].isalpha():
    ...
于 2010-03-07T10:08:35.573 に答える
0
if line.startswith((chr(x) for x in range(ord('a'), ord('z')+1)+range(ord('A'), ord('Z')+1)):
    # do processsing
    pass
于 2011-09-09T19:37:25.173 に答える
-1

文字列の前の空白を気にしない場合は、

if line and line.lstrip()[0].isalpha(): 
于 2010-03-07T11:20:44.043 に答える