python 正则表达式,如下数字8.5如何提取?

在字符串[u'\n8.5\n']中提取数字thx... 在字符串[u'\n 8.5\n '] 中提取数字
thx
展开
 我来答
tim_spac
2014-08-28 · TA获得超过3628个赞
知道大有可为答主
回答量:1804
采纳率:100%
帮助的人:2023万
展开全部
>>> src = ur"""
...     8.5   
... """
>>> src
u'\n    8.5   \n'
>>> import re
>>> patt = re.compile(r"(\d+\.\d+)")
>>> patt.findall(src)
[u'8.5']
>>>
追问

  其实我的应用场景是爬虫,提取豆瓣的书籍评分

  

  但是这个结果就是空

  我只能把(\d+\.\d+) 换成(.*?) 但是结果又是'\n    8.5   \n'

  请问为什么(\d+\.\d+)结果是空?谢谢

追答

Help on function search in module re:

search(pattern, string, flags=0)
    Scan through string looking for a match to the pattern, returning
    a match object, or None if no match was found.

findall(pattern, string, flags=0)
    Return a list of all non-overlapping matches in the string.
    
    If one or more groups are present in the pattern, return a
    list of groups; this will be a list of tuples if the pattern
    has more than one group.
    
    Empty matches are included in the result.
(END)


Example:

>>> context = ur"""
...     8.5   
... """
>>> context
u'\n    8.5   \n'
>>> patt = re.compile(r"(\d+\.\d+)")
>>> m = patt.search(context)
>>> m.group()
u'8.5'
>>> f = patt.findall(context)
>>> f
[u'8.5']
>>>
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式