我觉得这是一个常见的用例,但我在网上找不到太多的帮助。给定一个测试字符串,如“Hello my name is \name{John} \name{Doe}",我想删除所有花括号 * 及其周围的内容 *(不包括空格和句点),但保留括号之间的内容。预期输出为“Hello my name is John Doe”。
wh6knrhe1#
试试这个:
[^ .]*{|}[^ .]*
[^ .]*{---〉[^ .]*零个或多个字符(空格和点除外),注意^后面有一个空格,后跟一个文字{|或}[^ .]*---〉一个文本},后跟[^ .]*零个或多个字符(空格和点除外)。参见regex demo
[^ .]*{
[^ .]*
^
{
|
}[^ .]*
}
dvtswwa32#
这应该行得通:re.sub('[^ .]*\{(.*?)\}[^ .]*',r'\1',string)
re.sub('[^ .]*\{(.*?)\}[^ .]*',r'\1',string)
2条答案
按热度按时间wh6knrhe1#
试试这个:
[^ .]*{
---〉[^ .]*
零个或多个字符(空格和点除外),注意^
后面有一个空格,后跟一个文字{
|
或}[^ .]*
---〉一个文本}
,后跟[^ .]*
零个或多个字符(空格和点除外)。参见regex demo
dvtswwa32#
这应该行得通:
re.sub('[^ .]*\{(.*?)\}[^ .]*',r'\1',string)