我有多个字符串,其中的单词用逗号或句号分隔:
string = ['apple,pear,grapes,carrot.cabbage,veggies.fruit,yard']
我想根据逗号和句号拆分:
string = ['apple','pear','grapes','carrot','cabbage','veggies','fruit','yard']
我只知道如何为re.split使用一个条件:
re.split(',',string)
这不会分裂有两个句号的词。如何分割整个字符串,以便在逗号或句点之间分割单词?
答案 0 :(得分:2)
>>> import re
>>> string = 'apple,pear,grapes,carrot.cabbage,veggies.fruit,yard'
>>> re.split(',|\.',string)
['apple', 'pear', 'grapes', 'carrot', 'cabbage', 'veggies', 'fruit', 'yard']
这使用更改运算符,
分为.
或\.
(必须以|
转义)。
它也可以用字符类编写:
>>> re.split('[,.]',string)
['apple', 'pear', 'grapes', 'carrot', 'cabbage', 'veggies', 'fruit', 'yard']
但这不太通用,因为这两个字都不能用短语替换。
答案 1 :(得分:0)
import re
string = 'apple,pear,grapes,carrot.cabbage,veggies.fruit,yard'
arr = re.split('[,.]', string)
print(arr)
答案 2 :(得分:0)
如果您的字符串变量中包含许多元素,则可以使用chain.from_iterable
模块中的itertools
来处理您的列表
from itertools import chain
string = ['apple,pear,grapes,carrot.cabbage,veggies.fruit,yard']
final = list(chain.from_iterable(re.split(',', k) for k in string))
print(final)
输出:
['apple', 'pear', 'grapes', 'carrot.cabbage', 'veggies.fruit', 'yard']
您只能更改re.split()
内的模式,以便在','
和'.'
之间进行分割:
from itertools import chain
string = ['apple,pear,grapes,carrot.cabbage,veggies.fruit,yard']
final = list(chain.from_iterable(re.split('[,.]', k) for k in string))
print(final)
输出:
['apple', 'pear', 'grapes', 'carrot', 'cabbage', 'veggies', 'fruit', 'yard']