正则表达式:将字符周围的大括号替换为 [^ ]

我是Python的新手,我试图修改字符串,以便将序列{.}替换为[^.],其中点可以表示任何字符。

我试着写:

 def preprocess_mot (motif):
    motif= re.sub( '\{.*?\}',  lambda m: '[^' + m.group()+"]" ,    motif)  
    print(motif)

但它不会删除大括号。

例如

preprocess_mot("asdasd{d}")

asdasd[^{d}]

什么时候应该给

asdasd[^d]


慕哥6287543
浏览 82回答 1
1回答

米脂

我把我的评论作为答案:使用捕获组:motif= re.sub( '\{(.*?)\}', lambda m: '[^' + m.group(1) + "]" , motif)   #                 ^___^                            __^
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python