如何使用 re.split 分割逗号和句号?

2024-05-14 03:46:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有多个字符串,其中的单词用逗号或句点分隔:

string = ['apple,pear,grapes,carrot.cabbage,veggies.fruit,yard']

我想根据逗号和句点来拆分:

string = ['apple','pear','grapes','carrot','cabbage','veggies','fruit','yard']

我只知道如何使用一个条件重新拆分:

re.split(',',string)

这不会分割中间有句点的单词。如何拆分整个字符串,以便在两个字符串之间有逗号或句点时拆分单词?


Tags: 字符串reapplestring条件单词pear逗号
3条回答
import re
string = 'apple,pear,grapes,carrot.cabbage,veggies.fruit,yard'
arr = re.split('[,.]', string)
print(arr)

如果字符串变量中有许多元素,可以使用chain.from_iterablefromitertools模块来处理列表

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']
>>> 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']

但这一点不太普遍,因为两个字符都不能用短语代替。

相关问题 更多 >