Python re.split用逗号和括号"("和")"

时间:2014-10-02 15:23:56

标签: python regex split

所以我得到了这段代码:

from dosql import *
import cgi
import simplejson as json
import re

def index(req, userID):
    userID = cgi.escape(userID)

    get = doSql()
    rec = get.execqry("select get_progressrecord('" + userID + "');",False)[0][0]
    result = str(rec)
    stringed = re.split(',', result)

    return json.dumps(stringed)

然后它返回:

enter image description here

但我想排除括号" "" "太。我怎么能在正则表达式中放置多个分隔符?

3 个答案:

答案 0 :(得分:1)

放一个|他们之间:

stringed = re.split(',|(|)', result)

答案 1 :(得分:1)

使用str.strip,您可以删除指定的环绕字符:

>>> row = ["(178.00", "65.00", "20.52", "normal", "18", "0.00)"]
>>> [x.strip('(),') for x in row]
['178.00', '65.00', '20.52', 'normal', '18', '0.00']

顺便说一句,如果get.execqry(..)返回一个元组,则不需要字符串操作。

a_tuple = get.execqry(....)
# or (if you want a list)
a_list = list(get.execqry(....))

答案 2 :(得分:0)

您可以使用这样的简单正则表达式:

[,()]

<强> Working demo

enter image description here

我们的想法是使用正则表达式类[ ... ]匹配您想要的字符。所以,这将匹配逗号或括号。

另一方面,如果您想捕获以下内容:

(250.00", "612.00", "55.55", "normal", "1811", "0.00)

您可以使用以下内容:

([\w.]+)   

<强> Working demo

enter image description here