我的字符串是这样的:
<tr id="xyz21" style="" class="standard">
当我通过在线正则表达式帮助网站pythex.org运行我的正则表达式时,我得到了我想要的东西;只有数字&#34; 21&#34;。该网站说:
匹配捕获&#34; 21&#34;
这是我使用的正则表达式:
<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"
最终,我想要的是创建一个值为&#34; 21&#34;的变量。顺便说一下,我使用正则表达式的实际字符串比我显示的字符串长得多。实际上它是一个小文件。我简化了我的例子只是为了让它更容易理解。有什么想法吗?
答案 0 :(得分:1)
您需要添加参数:
re.search('<tr id="xyz(.*?)"', x).group(1)
如果只有一个参数,则结果为单个字符串;如果有 是多个参数,结果是一个元组,每个元素一个 论点。没有参数,group1默认为零(整个匹配 退回)。如果groupN参数为零,则返回相应的 value是整个匹配字符串;如果它在包容范围内 [1..99],它是匹配相应括号的字符串 基。