startwith関数を使用して任意の英字[a-zA-Z]と一致させるにはどうすればよいですか。たとえば、私はこれをしたいと思います:
if line.startswith(ALPHA):
Do Something
startwith関数を使用して任意の英字[a-zA-Z]と一致させるにはどうすればよいですか。たとえば、私はこれをしたいと思います:
if line.startswith(ALPHA):
Do Something
非ASCII文字も照合する場合は、次を使用できますstr.isalpha
。
if line and line[0].isalpha():
タプルをstartswiths()
(Python 2.5以降では)に渡して、その要素のいずれかに一致させることができます。
import string
ALPHA = string.ascii_letters
if line.startswith(tuple(ALPHA)):
pass
もちろん、この単純なケースでは、正規表現テストまたはin
演算子の方が読みやすくなります。
簡単な解決策は、pythonregexモジュールを使用することです。
import re
if re.match("^[a-zA-Z]+.*", line):
Do Something
これはおそらく最も効率的な方法です。
if line != "" and line[0].isalpha():
...
if line.startswith((chr(x) for x in range(ord('a'), ord('z')+1)+range(ord('A'), ord('Z')+1)):
# do processsing
pass
文字列の前の空白を気にしない場合は、
if line and line.lstrip()[0].isalpha():