dryu999 发表于 2017-4-28 08:06:55

Python的正则一例

  悄悄打入公司内部UED的一个Python爱好者小众群,前两天一位牛人发了条消息:
  

小的测试题:re.split('(\W+)','test,test,test.')返回什么结果

  一开始看,我倒没注意W是大写的,以为是小写的w代表单词字符(含下划线),今天运行一看才发现是大写的。
  在IDLE跑一下的结果如下:
  >>> import re>>> re.split('(\W+)', ' test, test, test.')['', ' ', 'test', ', ', 'test', ', ', 'test', '.', '']>>>
看到如上的输出,我是带有疑惑的,\W匹配非单词字符,那么结果里为什么有那么多非单词字符?
  我都怀疑我对\W的含义是不是记错了,打开正则手册一看,确定我没记错之后,我发现了此例中匹配模式包含了括号,对应着正则里面的(pattern),
  而这表示在匹配的同时会获取匹配,并保存到匹配结果集中。
  恍然。
  

  再测:
  >>> re.split('(\W+)', ' test, test, test.')['', ' ', 'test', ', ', 'test', ', ', 'test', '.', '']>>> re.split('\W+', ' test, test, test.')['', 'test', 'test', 'test', '']>>>
页: [1]
查看完整版本: Python的正则一例