如何从Python正则表达式中获取匹配的字符?
我想在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是整个匹配到的字符串)。