regex 如何用正则表达式删除花括号周围的内容?

vmjh9lq9  于 2023-02-14  发布在  其他
关注(0)|答案(2)|浏览(151)

我觉得这是一个常见的用例,但我在网上找不到太多的帮助。
给定一个测试字符串,如“Hello my name is \name{John} \name{Doe}",我想删除所有花括号 * 及其周围的内容 *(不包括空格和句点),但保留括号之间的内容。预期输出为“Hello my name is John Doe”。

wh6knrhe

wh6knrhe1#

试试这个:

[^ .]*{|}[^ .]*

[^ .]*{---〉[^ .]*零个或多个字符(空格和点除外),注意^后面有一个空格,后跟一个文字{
|
}[^ .]*---〉一个文本},后跟[^ .]*零个或多个字符(空格和点除外)。
参见regex demo

dvtswwa3

dvtswwa32#

这应该行得通:
re.sub('[^ .]*\{(.*?)\}[^ .]*',r'\1',string)

相关问题