首页 > 解决方案 > 正则表达式:提取带有大括号包围的单词的字符串,如果它包含文本

问题描述

输入

我有一个这样的字符串:

string_ = "abc {def {ghi} { {jkl} {mno}} } \n abc { lmn {ghi} { {jkl} {mno}} }"

我需要使用 python 正则表达式提取花括号中的值,如果它包含字符串'def'。

输出

预期输出:

 "{def {ghi} { {jkl} {mno} } }"   

有人可以帮我吗?

标签: pythonregex

解决方案


import re

pattern = re.compile(r'({def(?:.*)[{].*[}])')
string_ = "abc {def {ghi} { {jkl} {mno}} } \n abc { lmn {ghi} { {jkl} {mno}} }"

result = pattern.search(string_)
print(result.group(1))

推荐阅读