python正则表达式匹配的问题
str='filterparent1:0queue800:800something1:1500matchac100809/ffffffffadf're.search(r'...
str=' filter parent 1:0 queue 800:800 something 1:1500 match ac100809/ffffffff adf'
re.search(r'.*?', filter_str)
为什么只能匹配到"filter parent 1:0 queue 800:800 something 1:1500",1500后面的都匹配不到呢? 展开
re.search(r'.*?', filter_str)
为什么只能匹配到"filter parent 1:0 queue 800:800 something 1:1500",1500后面的都匹配不到呢? 展开
展开全部
你这个正则能够匹配到什么呢?只能匹配到一个空的字符串吧?
怎么可能 会匹配到那么长
而且filter_str这个变量在哪里,就是上面的str?
这样,我给你写一个代码片段,你试一下:
filter_str=' filter parent 1:0 queue 800:800 something 1:1500 match ac100809/ffffffff adf'
a = re.search(r'.*', filter_str)
print a.group(0)
正则中的问号,如果放在 +号和 *号之后,表示正则的懒惰模式,你可以百度一下正则贪婪和正则懒惰,学习一下你就了解了。
更多追问追答
追问
str就是我说的那个filter_str,因为我编辑问题的时候写错了。:(
我觉得写.*应该可以匹配到整个字符串吧?我认为.*就是全部的意思!
追答
是的,确实就是全部,如果你想要匹配全部,就用 .*
如果你想匹配最少的甚至没有,可以使用 .*? 一般时间,如果用 .*? 它是不匹配东西的,也就是一个空字符串
所以,你的正则表达式,必须要有意义才行,像 .* 这样的万能匹配,你获取到的东西有啥意义呢?
另外 . 这个表达式是不匹配换行的,要注意。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询