如何从Python正则表达式中获取匹配的字符?

1 投票
4 回答
1506 浏览
提问于 2025-04-16 20:20

我想在Python中匹配一个数据URI的格式,具体是 data:\w+/\w+;\w+,\w+ 这样的字符串。我该怎么做才能把每次匹配到的部分都保留下来,以便后面使用(也就是每个 w+ 的部分)呢?

4 个回答

0

我觉得应该是 r'data:(\w+)/(\w+);(\w+),(\w+)' 或者类似的东西。

2

你需要使用分组。来自Python文档

(...) 表示匹配括号内的正则表达式,并标记一个分组的开始和结束;在匹配完成后,可以提取分组的内容,并且可以在字符串中使用 \number 特殊序列来再次匹配这些内容,具体说明如下。如果你想匹配字符 '(' 或 ')',可以直接使用 ( 或 ),或者把它们放在一个字符类中:[(] [)]。

7

把它们分成几个组,比如说 data:(\w+)/(\w+);(\w+),(\w+)。然后你可以使用 m.group(x) 或者 m.groups() (这里的 m 是一个匹配对象)来获取这些组的内容(注意,组0是整个匹配到的字符串)。

撰写回答