对于像这样的简单检查,正则表达式可能有点太多了;任务可以使用标准字符串方法完成。
用split()分解文本,我们比较每个单词的第一个字母降低到输入,在着名的列表理解中:
letter = raw_input ("Please Enter the Letter you want to find the words beggining with: ") words = [word for word in text.split() if word.lower()[0] == letter.lower()) print (words)
一些有趣的观点:使用raw_input,因为它不被解释;如果你替换 word.lower()[0] 同 word.lower().startswith( letter.lower() ) ,你可以检查多个角色。最后,如果我们使用生成器,它的内存效率更高(而且更有趣:);最后两行是:
word.lower()[0]
word.lower().startswith( letter.lower() )
words = (word for word in text.split() if word.lower()[0] == letter.lower()) for word in words: print word
变量与原始正则表达式连接使用 + 运营商。
+
words = re.findall(r'\b[' + lowerletter + upperletter +r']\w+', text)