Python正则表达式简单OR条件不起作用?

时间:2016-01-29 15:32:22

标签: python regex

我试图在Python中编写一个简单的正则表达式来识别逗号或换行符,以用作分隔符和split()文本。

我尝试了以下内容:

delim = r'[,\n]'
delim = r'[\n,]'
delim = r',|\n'
delim = r'[,|\n]'
delim = r'(,\n)'

这些都不起作用。如果我只使用一个或另一个,例如...

,split()工作正常
delim = r','
delim = r'\n'

但如果我尝试两者都行不行。

我在这里缺少什么?

感谢您的投入。

整个代码:

    data = "abc,def\nghi"
    delim = r'[,\n]'
    values = data.split(delim)
    print(values)

2 个答案:

答案 0 :(得分:6)

您正在使用str.split(),它不会将正则表达式作为参数。

尝试在正则表达式字符串上使用re.compile,然后使用该对象进行拆分:

import re

data = "abc,def\nghi"
delim = re.compile(r'[,\n]')
values = delim.split(data)
print(values)

收率:

['abc', 'def', 'ghi']

答案 1 :(得分:2)

这是bult-in python re模块

import re

data = "abc,def\nghi"

re.split(",|\n", data)
Out[3]: ['abc', 'def', 'ghi']

您可以输入分隔符列表",| \ n |; | whatever | whatever2"