Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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 regex re.findall()只返回一个匹配项_Python_Regex - Fatal编程技术网

Python regex re.findall()只返回一个匹配项

Python regex re.findall()只返回一个匹配项,python,regex,Python,Regex,我有一个功能字符串,如: [……] '用户1桌面显示器(v38)(服务器/端口1001),从10/17 6:40开始\n' '用户2桌面显示器(v38)(服务器/端口1501),从10/17 6:49开始\n' '用户3桌面显示器(v38)(服务器/端口2602),从10/17 8:33开始\n' '用户4桌面显示器(v40)(服务器/端口2702),从10/17 8:44开始\n' [……] 我试图使用正则表达式和.findall()函数返回所有用户的相关数据: # C

我有一个功能字符串,如:

[……]

'用户1桌面显示器(v38)(服务器/端口1001),从10/17 6:40开始\n'

'用户2桌面显示器(v38)(服务器/端口1501),从10/17 6:49开始\n'

'用户3桌面显示器(v38)(服务器/端口2602),从10/17 8:33开始\n'

'用户4桌面显示器(v40)(服务器/端口2702),从10/17 8:44开始\n'

[……]

我试图使用正则表达式和
.findall()
函数返回所有用户的相关数据:

            # Check user details
            regexLicenseUser = re.compile(
                r"    (\S+) (.+) (.+) \(v(\S+)\) \((\S+)/(\d+) (\d+)\)"
                r", start \w+ (\d+)/(\d+) (\d+):(\d+)")

            # Get all users per feature
            Users = re.findall(regexLicenseUser, features)
之后,我想将相关数据分组到列中(每个用户)

然后将其作为列表返回:

            sessionInfo = [User, Desktop, ...]

不幸的是,这只返回一个匹配,我需要返回(在本例中)四个匹配。有人知道如何继续吗?

你说功能是一个列表。如果是这样,Findall将只在列表的第一个元素中查找匹配项。您需要将所有功能整合到一个可以搜索的字符串中,或者创建一个循环,在列表的每个元素上迭代运行findall。Findall不会迭代列表中的元素。

My fault,功能以字符串形式列出。这就是为什么我使用
.findall()
而不是
.search()
。您需要将功能转换为字符串,例如“.join”(功能),然后改进您的RegexLicenseUser以捕获所需的所有数据组。或者,您可以循环浏览功能,并让RegexLicenseUser获取功能的数据。您希望从功能中获得哪些数据?您的第二个建议是我正在尝试的:首先,我获得功能的名称,总共有多少用户可以使用它,以及有多少用户真正使用该功能。然后我想返回使用特定功能的用户。
            sessionInfo = [User, Desktop, ...]