正则表达式中的(\ d +)/(\ d +)是什么?

use*_*957 17 regex

我知道这是一个正则表达式.我在一段代码中看到了这个特殊的正则表达式.它有什么作用?谢谢

Bur*_*lid 24

扩展minitech的答案:

  • ( 开始一个捕获组
  • \d一个速记字符类,匹配所有数字; 它是一样的[0-9]
  • + 一个或多个表达式
  • ) 结束捕获组
  • / 字面正斜杠

这是一个例子:

>>> import re
>>> exp = re.compile('(\d+)/(\d+)')
>>> foo = re.match(exp,'1234/5678')
>>> foo.groups()
('1234', '5678')
Run Code Online (Sandbox Code Playgroud)

如果删除括号(),表达式仍将匹配,但您只能捕获一组:

>>> foo = re.match('\d+/(\d+)','1234/5678')
>>> foo.groups()
('5678',)
Run Code Online (Sandbox Code Playgroud)


Ry-*_*Ry- 10

它匹配一个或多个数字,后跟斜杠,后跟一个或多个数字.

这里的两个"一个或多个数字"也形成组,可以提取和使用这些组.