如何在Python中拆分单词,同时考虑使用连字符的单词?
在Python中,如何在Python中拆分单词,同时考虑使用连字符的单词?,python,regex,Python,Regex,在Python中,re.split(“\W+”,“无脂牛奶”)产生['fat','free','milk'] 如何从re.split()生产[“无脂”、“牛奶”] 我理解问题在于连字符不是字母数字字符,但我不确定如何将这一事实合并到正则表达式中。我尝试了re.split(“[(^\-)\W]+”,“无脂牛奶”)但没有效果。不需要正则表达式: >>> "fat-free milk".split() ['fat-free', 'milk'] 如果要拆分任何非连字符的非单词字符,可
re.split(“\W+”,“无脂牛奶”)
产生['fat','free','milk']
如何从re.split()
生产[“无脂”、“牛奶”]
我理解问题在于连字符不是字母数字字符,但我不确定如何将这一事实合并到正则表达式中。我尝试了re.split(“[(^\-)\W]+”,“无脂牛奶”)
但没有效果。不需要正则表达式:
>>> "fat-free milk".split()
['fat-free', 'milk']
如果要拆分任何非连字符的非单词字符,可以使用否定字符组(如John的答案)或否定前瞻,这可能会稍微灵活一些:
>>> re.split(r'(?:(?!-)\W)+', "fat-free milk. with cream")
['fat-free', 'milk', 'with', 'cream']
我们可以用这个
re.split(“,“无脂牛奶”)
人们会假设他们使用正则表达式来处理标点符号。
re.split("[^-\w]+", "fat-free milk")
>>>a="fat-free milk fat-full cream"
>>>b=a.split(' ')
>>>print(b)
['fat-free', 'milk', 'fat-full', 'cream']