用于拆分包含逗号的字符串的正则表达式

Posted

技术标签:

【中文标题】用于拆分包含逗号的字符串的正则表达式【英文标题】:Regex for splitting a string which contains commas 【发布时间】:2014-02-28 09:02:00 【问题描述】:

如何在 Python 中用逗号分割字符串,其中包含逗号本身?假设字符串是:

object = """"alert", "Sorry, you are not allowed to do that now, try later", "success", "Welcome, user""""

如何确保拆分后只得到四个元素?

【问题讨论】:

object = 是否也包含在字符串中? 只有 。但我可以轻松剥离它们。 【参考方案1】:
>>> from ast import literal_eval
>>> obj = '"alert", "Sorry, you are not allowed to do that now, try later", "success", "Welcome, user"'
>>> literal_eval(obj[1:-1])
('alert', 'Sorry, you are not allowed to do that now, try later', 'success', 'Welcome, user')

On Python3.2+ 你可以直接使用literal_eval(obj)

【讨论】:

工作就像一个魅力。谢谢。 @thefourtheye,根据快速测试,Python 2.7 抛出 ValueError,而 Python 3.3 识别它。【参考方案2】:
>>> import re
>>> re.findall(r'\"(.+?)\"', obj)
['alert', 'Sorry, you are not allowed to do that now, try later',
 'success', 'Welcome, user']

【讨论】:

以上是关于用于拆分包含逗号的字符串的正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式匹配逗号不在分组符号之间

使用正则表达式拆分字符串时跳过逗号分隔字符串中的空格

逗号和双引号CSV格式的正则表达式拆分[重复]

正则表达式在第二个逗号处拆分

使用正则表达式拆分简单的 JSON 结构

带有逗号分隔符的数字的正则表达式验证