gpt4 book ai didi

python - python re模块中split函数的空匹配

转载 作者:行者123 更新时间:2023-12-04 13:31:44 25 4
gpt4 key购买 nike

我只是想知道如何' 第二个结果中出现空字符串'。
谁能告诉我一步一步发生了什么?

>>> re.split(r'\W*', '...words...')
['', '', 'w', 'o', 'r', 'd', 's', '', '']
如果我没有错,第一个空匹配是因为 python re 模块文档中的这句话:

If it matches at thestart of the string, the result will start with an empty string. Thesame holds for the end of the string

最佳答案

regex demo at regex101 :enter image description here .它显示匹配发生的位置。现在,回想一下 re.split使用匹配值(此处为空字符串,字符串中的位置)拆分字符串,您可以轻松查看拆分发生的位置:

  • ...找到并发生 split => ['', 'words...']
  • w找到了,所以 \W*匹配前面的空格 => ['', '', 'words...']
  • o找到了,所以 \W*匹配前面的空格 => ['', '', 'w', 'o', 'rds...']
  • r找到了,所以 \W*匹配前面的空格 => ['', '', 'w', 'o', 'r', 'ds...']
  • d找到了,所以 \W*匹配前面的空格 => ['', '', 'w', 'o', 'r', 'd', 's...']
  • s找到了,所以 \W*匹配前面的空格 => ['', '', 'w', 'o', 'r', 'd', 's', '...']
  • ...找到了,所以 \W*匹配 => ['', '', 'w', 'o', 'r', 'd', 's', ''] (注意最后一个 '' 不仅仅是空字符串,它是一个空字符串,其结尾位置仍然可以匹配)
  • 找到字符串的结尾,所以 \W*匹配此位置 => ['', '', 'w', 'o', 'r', 'd', 's', '', ''] .
  • 关于python - python re模块中split函数的空匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64631146/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com