>>> re.sub(r'''
(?<=\() # make sure there's an opening parenthesis prior to the groups
(\d{4}) # one group of four digits
(\d{4}) # and a second group of four digits
(?=\)) # with a closing parenthesis after the two groups
''', r'\1-\2', '(19561958)', flags=re.VERBOSE)
'(1956-1958)'
您可以使用捕获组或环顾四周
\d{4}
正好匹配4位数字示例:
或者
通过环顾四周
(?<=\(\d{4})
肯定的lookback,断言匹配必须以(
和四位字符开头(?=\d{4}\))
Posiitve lookahead,断言匹配必须后跟4位数字加上)
符号这里有一个边界匹配。用
-
替换匹配的边界将得到所需的输出您可以分别捕获这两年,并在两个组之间插入连字符:
请注意,
\d\d\d\d
更简洁地写为\d{4}
如前所述,这将在任何八位数加上数字的前两组四位之间插入一个连字符。如果您需要匹配的括号,则可以使用look arounds显式地包含它们:
或者,您可以使用单词边界,也可以处理八位数字周围的空格:
使用两个捕获组:
r"(\d\d\d\d)(\d\d\d\d)"
或r"(\d{4})(\d{4})"
第二组用
\2
引用相关问题 更多 >
编程相关推荐