Python正则表达式替换捕获

eww*_*ink 4 python regex

我正在尝试在 前后添加一个空格+-,使用re.sub(仅)使用什么表达式?

import re

text = """a+b
a+b-c
a + b - c
a+b-c+d-e
a + b - c + d - e"""

text = re.sub('(\s?[+-]\s?)', r' \1 ', text)
print(text)
Run Code Online (Sandbox Code Playgroud)

预期结果:

a + b
a + b - c
a + b - c
a + b - c + d - e
a + b - c + d - e
Run Code Online (Sandbox Code Playgroud)

import re

text = """a+b
a+b-c
a + b - c
a+b-c+d-e
a + b - c + d - e"""

text = re.sub('(\s?[+-]\s?)', r' \1 ', text)
print(text)
Run Code Online (Sandbox Code Playgroud)

Cer*_*nce 5

尝试捕捉[+-],然后与该组用空格代替包围:

text = re.sub('\s?([+-])\s?', r' \1 ', text)
Run Code Online (Sandbox Code Playgroud)

text = re.sub('\s?([+-])\s?', r' \1 ', text)
Run Code Online (Sandbox Code Playgroud)

您还可以考虑\s*代替重复s ?,例如,这样3 + 5可以美化为3 + 5

\s*([+-])\s*
Run Code Online (Sandbox Code Playgroud)