Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 正则表达式获取了太多信息_Python_Regex - Fatal编程技术网

Python 正则表达式获取了太多信息

Python 正则表达式获取了太多信息,python,regex,Python,Regex,我的剧本: def fetch_online(): pattern = re.search('(<span class="on">)(.*)(</span>)', data) return pattern.group(2) print fetch_online() 但是,运行时,输出如下所示: 5879</span> users online 我应该如何解决这个问题,使它只在第一个之前获取数据?使用非贪婪量词:.* 要了解更多关于非贪婪量

我的剧本:

def fetch_online():
    pattern = re.search('(<span class="on">)(.*)(</span>)', data)
    return pattern.group(2)

print fetch_online()
但是,运行时,输出如下所示:

5879</span> users online

我应该如何解决这个问题,使它只在第一个之前获取数据?

使用非贪婪量词:.*

要了解更多关于非贪婪量词的信息,请阅读下面的“懒惰而不是贪婪”一节


只是重申一下评论中已经说过的话,。

在您的具体案例中,使用\d+。在更一般的方法中,选择非贪婪:

<span class="on">(.*?)</span>

跟我重复一遍:!根据项目的范围,是一个非常好的Python库,用于处理HTML.soup.findAll'span',{'class':'on'}[0].text
<span class="on">(.*?)</span>