python在字符串中找到一个模式并将其括在大括号中

时间:2015-10-17 03:02:50

标签: python regex pattern-matching

我不是正则表达式的专家,并尝试执行以下操作。

string' s'可以包含模式16'h2020:16'h2F20,即十六进制数字范围。我需要将这个匹配括在方括号中并返回相同的字符串,即[16' h2020:16' h2F20]。

我这样做了:

s = re.sub("\d+'h\d+:\d+'h\d+","[\d+'h\d+:\d+'h\d+]",s)

但它不按要求工作。请帮忙。

1 个答案:

答案 0 :(得分:2)

您需要使用capturing group

s = re.sub(r"(\d+'h\d+:\d+'h\d+F\d+)",r'[\1]',s)

示例:

>>> import re
>>> s = "16'h2020:16'h2F20"
>>> re.sub(r"(\d+'h\d+:\d+'h\d+F\d+)",r'[\1]',s)
"[16'h2020:16'h2F20]"