亿万教师注册Python正则表达式中findall前往列表中包括空字符串

运用re.findall查找字符串,运用了$标识查找到字符串扫尾,但是前往的list中最后一个元素为空字符串

s = ABCD
m = re.findallr.*$, s
if m:
    printm

# output [ABCD, ]

为什么在第一次曾经婚配到字符串扫尾$的情况下,findall没有中断还做了一次婚配?而相比^就没有在末尾处^多做一次如许的查找:

s = ABCD
m = re.findallr^.*, s
if m:
    printm
# output [ABCD] 

别的言语也是如许

js

ABCD.match/.*$/g
["ABCD", ""]
ABCD.match/^.*/g
["ABCD"]

python3

>>> re.findallr.*\b, ABCD
[ABCD, ]
>>> re.findallr.*?=$, ABCD
[ABCD, ]
>>> re.findallr.{0,}?=$, ABCD
[ABCD, ]
\b、^、$、?=exp

这几个是零宽断言,只婚配地位,不用耗字符。

地位之后的零个字符恰好符合.*

(看完/读完)这篇文章有何感想! 亿万先生注册的分享…

发表评论

姓名 *
电子邮件 *
站点