正则表达式
import restr = "123456789123456789 123456789123456"
matchObj = re.findall(r'\d{15}(\d{3})?', str)
print('str is: ', str)
print('matchObj is: ', matchObj)
\d{15}(\d{3})?我觉得应该至少有15个数字,问号代表有或无,整个式子匹配15或18个数字。
但结果如下所示,只匹配了三个数字
str is:123456789123456789 123456789123456
matchObj is:['789', ''] import re
s = "123456789123456789 123456789123456"
r = re.findall(r'\d{15}(?:\d{3})?', s)
print(r) 本帖最后由 suchocolate 于 2022-6-28 10:41 编辑
re 有无()的区别:https://blog.csdn.net/ningyanggege/article/details/105254241 最终输出结果只有三个数字是因为括号指定了输出信息了吧 不大明白什么意思~{:10_256:}{:10_256:}{:10_256:}你如果加上括号呢r'(\d{15})(\d{3})?' 他可以匹配到15位字符串和15+3位字符串 因为你括号就括了3个啊,前一帖不是给你说过了 re.findall() 添加了() 就只返回()内匹配的字符,去了()就好了 nikezhi 发表于 2022-6-28 11:36
因为你括号就括了3个啊,前一帖不是给你说过了
抱歉,意思没有表达明确。问题已经解决了,谢谢! wangxaio 发表于 2022-6-28 16:18
re.findall() 添加了() 就只返回()内匹配的字符,去了()就好了
谢谢提醒,但没有得到预期结果 sls111 发表于 2022-6-28 10:31
不大明白什么意思~你如果加上括号呢r'(\d{15})(\d{3})?' 他可以匹配到15位 ...
感谢帮助,但没有满足预期 suchocolate 发表于 2022-6-28 09:49
re 有无()的区别:https://blog.csdn.net/ningyanggege/article/details/105254241
感谢你的帮助!{:7_146:}
页:
[1]