Python re.split的困惑

查看:434
本文介绍了Python re.split的困惑的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

最近看了些python代码,看到了一个re.split的用法,有些困惑,
查手册也看不太懂
有人能具体解释下吗

re_han = re.compile("([\u4E00-\u9FD5]+)")
re_han = re.compile("[\u4E00-\u9FD5]+")

上面unicode中基本中文字符集的2个正则表达式
然后下面是疑问
对于re_han.split(sentence)这句,上面2个正则表达式产生的结果会有区别,这个区别是怎么产生的
下面是api手册的示例

re.split('\W+', 'Words, words, words.')

['Words', 'words', 'words', '']

re.split('(\W+)', 'Words, words, words.')

['Words', ', ', 'words', ', ', 'words', '.', '']

解决方案

  • 如果没有加小括号,则返回结果就是用正则表达式匹配的groups;

  • 如果加了小括号,会返回所有的groups,包括不匹配的groups也会包括在返回结果中。

官方文档说的挺清楚的,我只是帮你翻译了一遍而已。

这篇关于Python re.split的困惑的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆