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

正则表达式在这里可能有点矫枉过正,但这是一种方法:

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

这将匹配字符串"y""yes"任何大小写,但对于类似"yellow"or的字符串将失败"yesterday"

或者更好的是,没有正则表达式的相同行为:

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