我有以下几行,我只想匹配内部花括号中的内容。
对于这3行:
{ abv:{1} pwr:{1} dft:{1} valUy:{4066792} }
{ wwqe:{0x342} }
{ heew:{ValStr} abgd:{-} }
输出为:
1,1,1,4066792
0x342
ValStr,-
我尝试了以下2种正则表达式测试here,但没有得到我想要的值。
\{(.*?)\}
(?<=\{).+?(?=\})
在此先感谢您的帮助。
答案 0 :(得分:3)
我们可以尝试通过以下正则表达式模式使用re.findall
:
\{([^{}]+)\}
这将捕获整个输入中花括号之间的内容。请注意,这确保了我们不尝试匹配最里面的括号以外的任何内容。
inp = """{ abv:{1} pwr:{1} dft:{1} valUy:{4066792} }
{ wwqe:{0x342} }
{ heew:{ValStr} abgd:{-} }"""
matches = re.findall(r'\{([^{}]+)\}', inp)
print(matches)
此打印:
['1', '1', '1', '4066792', '0x342', 'ValStr', '-']