【问题标题】:python regex for extracting number in stringpython 正则表达式用于提取字符串中的数字
【发布时间】:2015-05-19 17:47:58
【问题描述】:

我的字符串是这样的:

<tr id="xyz21" style="" class="standard">

当我通过在线正则表达式帮助网站 pythex.org 运行我的正则表达式时,我得到了我想要的;只有数字“21”。该网站说:

匹配捕获“21”

这是我使用的正则表达式:

<tr id="xyz(.*?)"

但是,当我在 Python 3 脚本中使用相同的正则表达式时,我会得到更多。这是带有结果的脚本:

>>> import re
>>> x = '<tr id="xyz21" style="" class="standard">'
>>> num = re.search('<tr id="xyz(.*?)"', x).group()
>>> print(num)
<tr id="xyz21"

最终,我只想创建一个值为“21”的变量。顺便说一句,我使用正则表达式的实际字符串比我显示的要长得多。实际上,这是一个小文件。我已经简化了我的例子,只是为了让它更容易理解。有什么想法吗?

【问题讨论】:

    标签: python regex


    【解决方案1】:

    你需要添加一个参数:

    re.search('<tr id="xyz(.*?)"', x).group(1)
    

    documentation 注意到

    如果只有一个参数,结果是一个字符串;如果有 是多个参数,结果是一个元组,每个项目 争论。没有参数,group1 默认为零(整个匹配 被退回)。如果 groupN 参数为零,则相应的返回 value 是整个匹配字符串;如果在包含范围内 [1..99],就是匹配对应括号的字符串 组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-10
      • 2014-08-25
      • 1970-01-01
      相关资源
      最近更新 更多