我试图使用Python提供的re
模块,但我认为我错过了一些东西。我想要做的是能够说出一个给定的模式是否在句子中,例如:
我的判决"今天的天空是蓝色的"
我想找出模式blu* tod*
是否在句子
我尝试过很多东西,比如:
data = 'The sky is blue today'
pattern = 'blu*\stod*
re.match(pattern,data,re.IGNORECASE) // doesn't worked
pattern = [blu+]\s[tod+]
re.search(pattern,data) // Match everything in my sentence, even if the pattern isn't inside
有人能帮助我吗?或者也许可以指出一个关于在句子中找到正则表达式的好教程?
谢谢。
答案 0 :(得分:1)
您误解了*
和+
在正则表达式中的行为。它们不是文件通配符中的通配符:它们分别是前一个字符的“0或更多”或“1或更多”。所以它正在寻找类似“bluuuuuu todddddd”的东西。
另一个问题是,您可以互换使用match
和search
,但实际上match
只会匹配字符串的开头。您需要search
。
所以你的代码应该是:
data = 'The sky is blue today'
pattern = 'blu.+\stod.+'
re.search(pattern,data)
答案 1 :(得分:-1)
你想学习贪婪和懒惰之间的区别,以及如何使用这个点。我喜欢这个网站: