可以使用正则表达式中的反向引用来实现该功能。具体来说,可以使用一个捕获组来匹配括号内的内容,然后在该捕获组前后添加正则表达式 \s*
来匹配空格,并用反向引用将内容重新放回括号中。以下是示例代码:
import re
# 原始字符串
s = " ( hello ) world "
# 模式匹配
pattern = re.compile(r'\(\s*(.*?)\s*\)')
# 替换匹配到的内容
result = re.sub(pattern, r'(\1)', s)
print(result) # 输出:(hello) world
在上面的代码中,r'\(\s*(.*?)\s*\)'
是一个正则表达式模式,用于匹配括号内的内容并去除前后的空格。其中:
\(
和 \)
匹配左右括号;\s*
匹配前后的空格;(.*?)
是一个捕获组,用于匹配括号内的任意字符;\1
是一个反向引用,用于将捕获组中的内容重新放回括号中。最后,使用 re.sub()
函数将匹配到的内容替换为修正后的字符串,然后输出即可。