【问题标题】:Usage of re.I in Python re.split [duplicate]在 Python re.split 中使用 re.I [重复]
【发布时间】:2017-07-26 14:11:10
【问题描述】:

我有代码

s = 'fwerewkrewjrcl23QWERCSHSAesew'
print s

print re.split(r'[a-f]', s)
print re.split(r'[a-f]', s,re.IGNORECASE)
print re.split(r'[a-fA-F]', s)

现在,对于第一个,我得到了我期望的答案:

['', 'w', 'r', 'wkr', 'wjr', 'l23QWERCSHSA', 's', 'w']

但是第二个给了我这个:

['', 'w', 'rewkrewjrcl23QWERCSHSAesew']

当我期望看到这个时: ['', 'w', 'r', 'wkr', 'wjr', 'l23QW', 'R', 'SHS', '', 's', 'w']

只有在执行第三次拆分时才能获得预期的输出。我认为第二个和第三个是等价的。我错过了什么?我查看了文档和其他网站以进行澄清,但找不到任何内容。我还看到了一个 YouTube 视频,演示者似乎也意外地遇到了这个问题,但掩盖了它。

【问题讨论】:

  • 谢谢!是否有一个常见问题解答,我可以在其中使用 Python-->re-->re.split 并找到其中列出的问题?

标签: python regex


【解决方案1】:

https://docs.python.org/2/library/re.html#re.split

re.split(pattern, string, maxsplit=0, flags=0)

你的re.I (= 2) 被传递为maxsplit,所以效果是字符串最多被拆分2次。使用keyword arguments 将其传递给flags

print re.split(r'[a-f]', s, flags=re.IGNORECASE)
#                           ^^^^^^

【讨论】:

  • 谢谢!为不检查使用情况而自责……
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-09
  • 2020-10-26
  • 1970-01-01
  • 2021-03-05
  • 1970-01-01
  • 2011-11-22
  • 1970-01-01
相关资源
最近更新 更多