2

「はい」という入力を期待するプログラムがあります。次のようなものです。

my_input = raw_input('> ')
if my_input == 'yes':
    #etc

しかし、それはあまりにも具体的です。入力をこの正規表現に一致させたい[yY](es)?ので、ユーザーが「はい、はい、yまたはY」と入力しても同じです。しかし、これがPythonでどのように実装されているのかわかりません。

私は次のようなものが欲しいです:

regex = some.regex.method('[yY](es)?')
my_input = raw_input('> ')
if my_input == regex:
    #etc  

前もって感謝します。

4

1 に答える 1

6

ここでは正規表現はおそらくやり過ぎですが、これを行う 1 つの方法を次に示します。

import re
regex = re.compile(r'y(es)?$', flags=re.IGNORECASE)
my_input = raw_input('> ')
if regex.match(my_input):
    #etc 

"y"これは文字列orに一致しますが、 or"yes"のような文字列では失敗します。"yellow""yesterday"

またはさらに良いことに、正規表現なしの同じ動作:

my_input = raw_input('> ')
if my_input.lower() in ('y', 'yes'):
    #etc
于 2013-03-13T15:46:50.593 に答える