我需要使用python基于一些字符分割字符串。 例如
String = "A==B AND B==C OR C!=A OR JP Bank==Chase"
我不想根据空间分割字符串,因为JP和Chase会形成两个不同的单词。 所以,我需要根据==,!=,AND,OR进行拆分。 预期产出
[A,==,B,AND,B,==,C,OR,C,!=,A,OR,JP Bank,==,Chase]
答案 0 :(得分:3)
将re.split
与正则表达式中的捕获组一起使用。
import re
s = "A==B AND B==C OR C!=A OR JP Bank==Chase"
pat = re.compile(r'(==|!=|AND|OR)')
pat.split(s)
<强>结果强>
['A', '==', 'B ', 'AND', ' B', '==', 'C ', 'OR', ' C', '!=', 'A ', 'OR', ' JP Bank', '==', 'Chase']
答案 1 :(得分:2)
您可以尝试re.split
功能。 \s*
之前和之后的(AND|OR|[!=]=)
也有助于删除空格。
>>> s = "A==B AND B==C OR C!=A OR JP Bank==Chase"
>>> re.split('\s*(AND|OR|[!=]=)\s*', s)
['A', '==', 'B', 'AND', 'B', '==', 'C', 'OR', 'C', '!=', 'A', 'OR', 'JP Bank', '==', 'Chase']
答案 2 :(得分:0)
import re
inStrint = "A==B AND B==C OR C!=A OR JP Bank==Chase"
outList = re.split( '(==|!=|OR|AND)', inString)
outList = map( lambda x: x.strip(), outList)