如何在Python中拆分单词,同时保留带连字符的单词



在Python中,re.split("W+", "fat-free milk")生成['fat', 'free', 'milk']

如何从re.split()生成['fat-free', 'milk']

我知道问题是连字符不是字母数字字符,但我不知道如何将这一事实结合到正则表达式中。我试过re.split("[(^-)W]+", "fat-free milk"),但没有用。

re.split("[^-w]+", "fat-free milk")

不需要正则表达式:

>>> "fat-free milk".split()
['fat-free', 'milk']

如果你想在任何不是连字符的非单词字符上进行拆分,你可以使用否定字符组(如John的)答案或否定前瞻,这可能更灵活:

>>> re.split(r'(?:(?!-)W)+', "fat-free milk. with cream")
['fat-free', 'milk', 'with', 'cream']
>>>a="fat-free milk fat-full cream"
>>>b=a.split(' ')
>>>print(b)
['fat-free', 'milk', 'fat-full', 'cream']

我们可以使用这个

re.split(" ", "fat-free milk")

最新更新