正则 *为何返回空的字符?

>>> print re.findall("[\w]*","-=-`")
['', '', '', '', '']

 print re.findall("s*","httpss://www.baidu.com")
['', '', '', '', 'ss', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '']

请问为什么会返回这些冒号?
谢谢

阅读 2.6k
3 个回答

量词的问题,我知道的是*会匹配0个,你改成+就行了

  1. \w: 表示 a-z 或者 A-Z 或者 0-9其中一个

  2. *: 仅仅表示量词, 前面样式匹配的个数, 需要区分.*

所以:

  1. 第一个为什么是空, 因为 "-=-`", 不符合 \w 的匹配范围

  2. 第二个为空的原因是, s*是表示 ssss....(0到无穷个s)

  3. 我猜测你想要的答案, 应该是: print re.findall("\w*", "httpss://www.baidu.com")

\w匹配字母和数字

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题