Python正则表达式查找两个字符对之间的所有子字符串

时间:2016-09-30 19:49:23

标签: python regex

我在SO上尝试过以前的答案。我只能找到几个子集。

这是我正在处理的代码和示例。

s = "{| mySting0 |}  The {| mySting1 |}  The {| mySting2 |}  The {| mySting3 |}  make it work "

result = re.findall('{\|(.*)|}', s)

输出是,

[' mySting0 |}  The {| mySting1 |}  The {| mySting2 |}  The {| mySting3 |}  make it work ']

我做错了什么?

1 个答案:

答案 0 :(得分:6)

您可以使用此正则表达式:

>>> s = "{| mySting0 |}  The {| mySting1 |}  The {| mySting2 |}  The {| mySting3 |}  make it work "
>>> re.findall(r'{\|(.*?)\|}', s)
[' mySting0 ', ' mySting1 ', ' mySting2 ', ' mySting3 ']

更改:

  1. 使用延迟量词.*?代替贪心.*
  2. 在你的正则表达式中排除第二|