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后面的都匹配不到呢?
展开
 我来答
cmoooo
2016-05-10 · TA获得超过3587个赞
知道小有建树答主
回答量:741
采纳率:0%
帮助的人:661万
展开全部

你这个正则能够匹配到什么呢?只能匹配到一个空的字符串吧?


怎么可能 会匹配到那么长


而且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,因为我编辑问题的时候写错了。:(

我觉得写.*应该可以匹配到整个字符串吧?我认为.*就是全部的意思!
追答
是的,确实就是全部,如果你想要匹配全部,就用  .*  

如果你想匹配最少的甚至没有,可以使用 .*? 一般时间,如果用 .*? 它是不匹配东西的,也就是一个空字符串

所以,你的正则表达式,必须要有意义才行,像 .* 这样的万能匹配,你获取到的东西有啥意义呢?

另外 . 这个表达式是不匹配换行的,要注意。
百度网友0f42798eb
2016-05-10 · 超过33用户采纳过TA的回答
知道答主
回答量:61
采纳率:0%
帮助的人:44.4万
展开全部
你的问题不完整, filter_str是什么都没说?
追问
是我写错了,filter_str和str应该是一个,但我在编辑问题的时候写错了。
追答
先说你的需求 ,你想匹配到什么?search寻找符合相同的一个子串, findall寻找所有的,但是不知道你想获取什么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式