(?:正则表达式), 非捕获组,它的意思就是让小括号只具备看成一个整体的意义,而不具备分组意义。
xxxxxxxxxximport re match = re.search(r'([a-z]+)-[a-z]+', 'abc-def')print(match)print(match.group(1)) # <re.Match object; span=(0, 7), match='abc-def'># abc
xxxxxxxxxx
import re
match = re.search(r'([a-z]+)-[a-z]+', 'abc-def')
print(match)
print(match.group(1))
# <re.Match object; span=(0, 7), match='abc-def'>
# abc
普通方法,match.group(1)能输出组的匹配内容。
但是:
xxxxxxxxxximport re match = re.search(r'(?:[a-z]+)-[a-z]+', 'abc-def') # 非捕获组 (?:)print(match)print(match.group(1)) # <re.Match object; span=(0, 7), match='abc-def'># IndexError: no such group
match = re.search(r'(?:[a-z]+)-[a-z]+', 'abc-def') # 非捕获组 (?:)
# IndexError: no such group
我们看到匹配的整体结果是不变的,但是match.group(1)已经不能输出组的内容,因为组已经不存在了
正则表达式付费代写、咨询、答疑解惑,专业、快速、高效帮您解决正则表达式方面的各种问题,可定制各类软件应用程序。
正则学习工作必备在线工具合集
.
^
$
\d
\w
\s
\D
\W
\S
[abc]
[a-z]
[^abc]
aa|bb
?
*
+
{n}
{n,}
{m,n}
(
)
\1
(?:
(?=
(?!
在线客服QQ:543690914,备案号: 苏ICP备15037649号-32。东海县白塔埠镇佳诚电脑经营部版权所有。