将所有字符存储在字符串

时间:2016-10-26 18:12:43

标签: python regex string python-3.x

我有一个字符串

statement = 'P ∧ (Q ∨ R) ↔ (P ∧ Q) ∨ (P ∧ R)'

我想存储括号内的每个字符串,如下所示:

['Q ∨ R', 'P ∧ Q', 'P ∧ R']

如何做到这一点?

2 个答案:

答案 0 :(得分:6)

>>> import re
>>> [s[1:-1] for s in re.findall(r'\(.*?\)', 'P ∧ (Q ∨ R) ↔ (P ∧ Q) ∨ (P ∧ R)')]
['Q ∨ R', 'P ∨ Q', 'P ∧ R']

答案 1 :(得分:4)

这是正则表达式的一个很好的用例:

>>> import re
>>> re.findall(r'\((.*?)\)', statement)
['Q ∨ R', 'P ∧ Q', 'P ∧ R']

模式中的?字符是非贪婪修饰符后缀