【发布时间】:2019-10-09 22:01:53
【问题描述】:
如果部分字符匹配,我正在尝试捕获大括号(包括大括号)之间的字符。
我尝试了下面的正则表达式模式,但它会抓取从整个字符串中的第一个大括号和最后一个大括号开始的所有内容。
string = "The {name_of_list} list contains {list:a, b, and c}. This list should be formatted as a, b, and c."
r"(\{.*?:a, b, and c\})"gm
我想捕获“{list:a, b, and c}”,但我得到的是“{name_of_list} list contains {list:a, b, and c}”。
【问题讨论】:
-
将
.*?替换为[^{}]*?。.匹配除换行符以外的任何字符,这就是原因。 -
试试
r"(\{.+?\})"