python的新手,我无法获得我想要的正则表达式的功能。基本上我有一个看起来像"Hello, World, Nice"
的字符串,我需要将其转换为一个分隔符为,
的列表。最终结果应如['Hello', 'World', 'Nice']
re.split(',', string)
基本上我得到的结果是
['Hello', ' World', ' Nice']
。
我通过不同的方法知道解决方案,但我想使用正则表达式。
非常感谢。
答案 0 :(得分:3)
假设空白可以是任意的,可以想到两种解决方案:
re.split(r'\s*,\s*', string)
# ^- zero or more whitespace incl. tabs and newlines
# the r'' syntax preserves the backslash from being interpreted
# as escape sequence
和
map(str.strip, string.split(','))
# ^- apply the 'strip' function (~ 'trim' in other languages) to all matches
我会跟你一起去。如果你经常在你的代码中拆分,那么优势就是跳过正则表达式机器(虽然它不会总结,直到你经常 )。
答案 1 :(得分:3)
哈,另一种没有regexp的解决方案:
x="Hello, World, Nice"
[y.strip() for y in x.split(",")]
答案 2 :(得分:0)
在', '
上拆分,空格
re.split(', ', string)
答案 3 :(得分:0)
>>> a = "Hello, World, Nice"
>>> a.split(", ")
['Hello', 'World', 'Nice']
>>>
使用re:
>>> import re
>>> re.split(', ',a)
['Hello', 'World', 'Nice']
>>>
答案 4 :(得分:0)
re.split(', ', string)
做你想做的事。
答案 5 :(得分:0)
如果您没有特定的高级要求,则根本不需要重新模块。
>>> "Hello, World, Nice".split(",")
['Hello', ' World', ' Nice']
>>> map( str.strip, "Hello, World, Nice".split(",") )
['Hello', 'World', 'Nice']
如果你真的坚持重新。
>>> re.split('\s*,\s*', "Hello, World, Nice" )
['Hello', 'World', 'Nice']
答案 6 :(得分:0)
一个稍微强大的解决方案:
>>> import re
>>> pattern = re.compile(' *, *')
>>> l = "Hello, World , Nice"
>>> pattern.split(l)
['Hello', 'World', 'Nice']
>>>
答案 7 :(得分:-1)
尝试使用此正则表达式进行拆分
>>> a = "Hello, World, Nice"
>>> a.split("[ ,\\,]")
在正则表达式中首先是空格,第二个是逗号