为什么 re.groups() 不会为我的一个正确匹配的组提供任何信息?

发布于 2024-12-02 19:32:07 字数 189 浏览 4 评论 0原文

当我运行此代码时:

print re.search(r'1', '1').groups() 

我得到 () 的结果。然而, .group(0) 给了我匹配。

groups() 不应该给我包含匹配项的内容吗?

When I run this code:

print re.search(r'1', '1').groups() 

I get a result of (). However, .group(0) gives me the match.

Shouldn't groups() give me something containing the match?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

╰つ倒转 2024-12-09 19:32:07

据我所知,.groups() 返回一个记住的组的元组。即正则表达式中用括号括起来的那些组。所以如果你写:

print re.search(r'(1)', '1').groups()

你会得到

('1',)

你的回应。一般来说,.groups() 将返回正则表达式中括号内的所有对象组的元组。

To the best of my knowledge, .groups() returns a tuple of remembered groups. I.e. those groups in the regular expression that are enclosed in parentheses. So if you were to write:

print re.search(r'(1)', '1').groups()

you would get

('1',)

as your response. In general, .groups() will return a tuple of all the groups of objects in the regular expression that are enclosed within parentheses.

只怪假的太真实 2024-12-09 19:32:07

groups 为空,因为您没有任何捕获组 - http://docs.python.org/库/re.html#re.MatchObject.groups。 group(0) 将始终返回匹配的整个文本,无论它是在组中捕获还是未

编辑。

groups is empty since you do not have any capturing groups - http://docs.python.org/library/re.html#re.MatchObject.groups. group(0) will always returns the whole text that was matched regardless of if it was captured in a group or not

Edited.

一身骄傲 2024-12-09 19:32:07

您的正则表达式中没有组,因此您会得到一个空列表 (())。

尝试

re.search(r'(1)', '1').groups()

使用括号创建一个捕获组,与模式的这一部分相匹配的结果将存储在一个组中。

然后你就得到

('1',)

结果了。

You have no groups in your regex, therefore you get an empty list (()) as result.

Try

re.search(r'(1)', '1').groups()

With the brackets you are creating a capturing group, the result that matches this part of the pattern, is stored in a group.

Then you get

('1',)

as result.

原来分手还会想你 2024-12-09 19:32:07

原因是您没有捕获组(因为您在模式中没有使用 () )。
http://docs.python.org/library/re.html#re .MatchObject.groups

group(0) 返回整个搜索结果(即使它根本没有捕获组):
http://docs.python.org/library/re.html#re .MatchObject.group

The reason for this is that you have no capturing groups (since you don't use () in the pattern).
http://docs.python.org/library/re.html#re.MatchObject.groups

And group(0) returns the entire search result (even if it has no capturing groups at all):
http://docs.python.org/library/re.html#re.MatchObject.group

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文