在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")