gpt4 book ai didi

Python 正则表达式替换捕获

转载 作者:太空宇宙 更新时间:2023-11-03 13:27:08 26 4
gpt4 key购买 nike

我正在尝试在 +- 前后添加一个空格,使用 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)

预期结果:

a + b
a + b - c
a + b - c
a + b - c + d - e
a + b - c + d - e

<script type="text/javascript" src="//cdn.datacamp.com/dcl-react.js.gz"></script>

<div data-datacamp-exercise data-lang="python">
<code data-type="sample-code">
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)
</code>
</div>

最佳答案

try catch [+-],然后用空格包围的那个组替换:

text = re.sub('\s?([+-])\s?', r' \1 ', text)

<script type="text/javascript" src="//cdn.datacamp.com/dcl-react.js.gz"></script>

<div data-datacamp-exercise data-lang="python">
<code data-type="sample-code">
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)
</code>
</div>

您还可以考虑使用 * 代替 ? 来重复 \s,例如,3 + 5 被美化为 3 + 5:

\s*([+-])\s*

关于Python 正则表达式替换捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53422750/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com