我已经在 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 ']
我做错了什么?
最佳答案
你可以使用这个正则表达式:
>>> s = "{| mySting0 |} The {| mySting1 |} The {| mySting2 |} The {| mySting3 |} make it work "
>>> re.findall(r'{\|(.*?)\|}', s)
[' mySting0 ', ' mySting1 ', ' mySting2 ', ' mySting3 ']
变化是:
- 使用惰性量词
.*?
而不是贪婪的.*
- Excape 2nd
|
以及您的正则表达式
关于Python 正则表达式查找两个字符对之间的所有子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39799096/