[英]Python - Match substring occurrences between { } with regex
我正在尝试使用正则表达式在两个选择器“{”和“}”之间搜索一个或多个可变子字符串。 如果找到多个,则输出应为列表。
这是一个字符串示例:
mystring = "foofoofoo{something}{anything}foofoofoo"
这是我使用的正则表达式:
re.findall(r"^.*(\{.*\}).*$", mystring)
但它给了我以下输出: {anything}
我试过用r"(\\{.*\\})"
并且它返回给我{something}{anything}
这几乎是好的,除了它不是列表。
任何想法?
从正则表达式中删除锚点和.*
以允许它从{
to }
捕获:
>>> mystring = "foofoofoo{something}{anything}foofoofoo";
>>> re.findall(r"(\{[^}]*\})", mystring);
['{something}', '{anything}']
要从匹配项中跳过{
和}
,请使用捕获的组:
>>> re.findall(r"\{([^}]*)\}", mystring);
['something', 'anything']
re.findall(r"({.*?})", mystring)
让你的*
非贪心。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.