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

Riv*_*diz 1 python regex

我在这里尝试过以前的答案.我只能找到几个子集.

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

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

result = re.findall('{\|(.*)|}', s)
Run Code Online (Sandbox Code Playgroud)

输出是,

[' mySting0 |}  The {| mySting1 |}  The {| mySting2 |}  The {| mySting3 |}  make it work ']
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

anu*_*ava 6

你可以使用这个正则表达式:

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

变化是:

  1. 使用延迟量词.*?而不是贪心.*
  2. |在你的正则表达式中脱颖而出