gpt4 book ai didi

python - 开始(python)正则表达式问题

转载 作者:太空宇宙 更新时间:2023-11-04 06:51:12 24 4
gpt4 key购买 nike

我无法弄清楚为什么以下正则表达式似乎不起作用。

我知道我可以组成其他正则表达式来完成这项工作,但我认为这个应该可以。

re.search ("(\d*)", "prefix 1234 suffix").groups()
('',)

有趣的是,findall 似乎有效:

re.findall("(\d*)", "prefix 1234 suffix")
['', '', '', '', '', '', '', '1234', '', '', '', '', '', '', '', '']

我明白为什么会这样,但我仍然对为什么搜索不起作用感到困惑?我的理解是 match 应该强制它匹配整个字符串,但是搜索应该找到字符串中任意位置的数字

最佳答案

因为 .search 运行搜索一次,并在第一时间进行匹配。由于 \d* 根本不能匹配任何字符,它可以匹配的第一个位置是字符串的开头,不捕获任何字符——所以第一个捕获组是 ''。它完全按照您的要求去做。

如果您改用正则表达式 (\d+),它必须匹配至少一个 数字,那么它可以匹配的第一个位置是 1,它将捕获 1234

关于python - 开始(python)正则表达式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4783275/

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