gpt4 book ai didi

python - 删除出现在大括号之间的换行符

转载 作者:行者123 更新时间:2023-11-28 22:33:21 25 4
gpt4 key购买 nike

我目前正在编写一个文本处理脚本,其中包含静态文本和变量值(用大括号括起来)。我需要能够去掉换行符,但前提是它们出现在大括号之间:

一些文本\n具有{variable\n}值"

到:

一些文本\n具有 {variable} 值"

在进一步的处理过程中,我已经这样做了:

re.sub(r'\{.*?\}', '(.*)', text, flags=re.MULTILINE|re.DOTALL)

但我不确定如何只针对换行符而不是整个大括号对。还有可能出现多个换行符:

一些文本\n具有{变量\n\n\n}值"


使用 Python 3.x

最佳答案

假设您有未嵌套的平衡括号,您可以使用此前瞻性正则表达式替换 {...} 之间的换行符:

>>> s = "Some text\nwith a {variable\n} value"
>>> print re.sub(r'\n(?=[^{}]*})', '', s)
Some text
with a {variable} value

(?=[^{}]*}) 是先行断言我们在换行符之前有一个结束 } 而不匹配 {} 在关闭 } 之前。

关于python - 删除出现在大括号之间的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40002880/

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