首页 > 其他分享 >这个正则 为啥同样的单号第二个就提取不出来?

这个正则 为啥同样的单号第二个就提取不出来?

时间:2023-09-28 22:55:21浏览次数:28  
标签:19 为啥 单号 findall re 正则 print 代码

大家好,我是皮皮。

一、前言

前几天在Python最强王者交流群【哎呦喂  是豆子~】问了一个Python正则表达式数据提取的问题,一起来看看吧。

大佬们 请问下 这个正则 为啥同样的单号第二个就提取不出来?这是为啥?

image.png

二、实现过程

从字符串上来看,a 和 a1写法都是可能出现的 但是a写法的用这个正则提取不出来 这是为啥?

这里【莫生气】、【甯同学】和【瑜亮老师】给了一个思路如下:

image.png

后来【瑜亮老师】还给了一个正确的代码,如下所示:

print(re.findall(r'D\d{19}',a1))
print(re.findall(r'D\d{19}',a))
上面这种a1和a都能匹配到
下面这种正则只能匹配D开头+19个数字的,数字位数多和少都无法匹配
print(re.findall(r'(D\d{19})\D',a))

上面这种a1和a都能匹配到
下面这种正则只能匹配D开头+19个数字的,数字位数多和少都无法匹配
print(re.findall(r'(D\d{19})\D',a))

顺利地解决了粉丝的问题。

三、总结

大家好,我是皮皮。这篇文章主要盘点了一个Python正则表达式数据提取的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【哎呦喂  是豆子~】提问,感谢【瑜亮老师】、【甯同学】给出的思路和代码解析,感谢【莫生气】等人参与学习交流。

【提问补充】温馨提示,大家在群里提问的时候。可以注意下面几点:如果涉及到大文件数据,可以数据脱敏后,发点demo数据来(小文件的意思),然后贴点代码(可以复制的那种),记得发报错截图(截全)。代码不多的话,直接发代码文字即可,代码超过50行这样的话,发个.py文件就行。

image.png

标签:19,为啥,单号,findall,re,正则,print,代码
From: https://www.cnblogs.com/dcpeng/p/17736628.html

相关文章

  • R语言随机波动模型SV:马尔可夫蒙特卡罗法MCMC、正则化广义矩估计和准最大似然估计上证
    全文链接:http://tecdat.cn/?p=31162最近我们被客户要求撰写关于SV模型的研究报告,包括一些图形和统计输出。本文做SV模型,选取马尔可夫蒙特卡罗法(MCMC)、正则化广义矩估计法和准最大似然估计法估计。模拟SV模型的估计方法:  sim<-svsim(1000,mu=-9,phi=0.97,sigma......
  • C#正则表达式整理备忘
    有一段时间,正则表达式学习很火热很潮流,当时在CSDN一天就能看到好几个正则表达式的帖子,那段时间借助论坛以及WroxPress出版的《C#字符串和正则表达式参考手册》学习了一些基础的知识,同时也为我在CSDN大概赚了1000分,今天想起来,去找《C#字符串和正则表达式参考手册》时,已经不知所踪了......
  • 解读C#正则表达式
    多少年来,许多的编程语言和工具都包含对正则表达式的支持,.NET基础类库中包含有一个名字空间和一系列可以充分发挥规则表达式威力的类,而且它们也都与未来的Perl5中的规则表达式兼容。   此外,regexp类还能够完成一些其他的功能,例如从右至左的结合模式和表达式的编辑......
  • c++正则表达式汇总
    一、校验字符的表达式1汉字:^[\u4e00-\u9fa5]{0,}$2英文和数字:^[A-Za-z0-9]+或[A−Za−z0−9]4,403长度为3-20的所有字符:^.{3,20}$4由26个英文字母组成的字符串:^[A-Za-z]+$5由26个大写英文字母组成的字符串:^[A-Z]+$6由26个小写英文字母组成的字符串:^[a-z]+$7由数字......
  • 正则记录
    用过的正则做一下记录指定开头中间和结尾匹配出结果conststring="<p><imgdata-local="aaa"class="small-img"src="data:image/png;base64"><imgdata-local="bbb"class="small-img"src="data:image/png;ba......
  • linux 中 awk中sub命令正则匹配数字
     001、[root@pc1test2]#lsa.txt[root@pc1test2]#cata.txtbatch01xyz1batch02xyz2batch03xyz3batch04xyz4batch05xyz5[root@pc1test2]#awk'{sub([0-9]+,"",$1);print$0}'a.txtawk:cmd.line:1:{sub([0-9]+,"",......
  • 【踩坑】JS/TS 整数明明没有超过 Number.MAX_VALUE,为啥精度还是丢失了?
    代码functioncalcKey(props){returnprops.reduce((key,prop,index)=>{constcode=prop[0]*(15+1)+prop[1];console.log(code);console.log(key);returnkey+code*Math.pow(1000,index);},0);}func......
  • MySQL正则表达式:模式匹配、中文匹配、替换、提取字符串
    在MySQL中,使用REGEXP或RLIKE操作符进行正则表达式匹配,而使用NOTREGEXP或NOTRLIKE操作符进行不匹配。一些常用的MySQL正则表达式语法:匹配字符:.:匹配任意字符(除了换行符)。[]:匹配方括号中的任意字符。[^]:匹配不在方括号中的任意字符。匹配重复:*:匹配零个或多个前面的字符。+:匹配一个......
  • jmeter正则表达式提取
    参考:https://www.cnblogs.com/uncleyong/p/10779268.html正则表达式提取器:后置处理器-正则表达式提取器Applyto:一般保持默认选择Mainsampleonly,这个用得最多,如果有sub-samples,可以选择第一个选项要检查的响应字段:用得最多的是主体,即header+body,可以从响应头,也可以从响应体......
  • 正则表达式输入中文英文名
    请输入正确的姓名,支持中文或者英文(20位字符内),例如:杨颖/^([\u4e00-\u9fa5]{1,20}|[a-zA-Z\.\s]{1,20})$/如果想要支持名字中间输入·和.这样写,例如:迪丽热巴·迪力木拉提/^[\u4e00-\u9fa5a-zA-Z·.]+$/......