返回第一个逗号之前的所有文本

时间:2014-10-24 16:26:20

标签: python regex

我想使用正则表达式返回第一个逗号之前的所有文本以及第一个逗号之后的所有文本。

我希望得到以下内容:

KB= (j V t) ^ (p V q) ^ (~p V t)
Truth = j=T,t=F,p=F,q=T

这是我到目前为止所做的:

line ='(j V t) ^ (p V q) ^ (~p V t),j=T,t=F,p=F,q=T'
KB = re.findall(r',\((.*?)\)',line)
Truth = re.findall(r',[\w=w]+', line)

2 个答案:

答案 0 :(得分:1)

使用捕获组捕获第一个逗号之前的字符串和第一个逗号之后的字符串。

>>> import re
>>> line ='(j V t) ^ (p V q) ^ (~p V t),j=T,t=F,p=F,q=T'
>>> re.findall(r'^([^,]*),(.*)$', line)
[('(j V t) ^ (p V q) ^ (~p V t)', 'j=T,t=F,p=F,q=T')]
>>> KB = re.findall(r'^[^,]*', line)[0]
>>> Truth = re.findall(r'^[^,]*,(.*)', line)[0]
>>> print KB
(j V t) ^ (p V q) ^ (~p V t)
>>> print Truth
j=T,t=F,p=F,q=T

您也可以使用re.search功能,

>>> line ='(j V t) ^ (p V q) ^ (~p V t),j=T,t=F,p=F,q=T'
>>> KB = re.search(r'^([^,]*),(.*)$', line).group(1)
>>> Truth = re.search(r'^([^,]*),(.*)$', line).group(2)
>>> print KB
(j V t) ^ (p V q) ^ (~p V t)
>>> print Truth
j=T,t=F,p=F,q=T

答案 1 :(得分:1)

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

([^,]+)?,(.*)