python re模块中 (?P) (?P=name) 及 \g 三者的使用区别
题主你好,
没有单独的(?P)这种用法, 猜测应该指的是(?P), (?P=name),\g这三者的用法.
首先说(?P),它其实和单个圆括号,(),本质上一样, 只不过在后面引用分组中多了一种引用方法:
(123)对于这个分组, 你引用时只能是\1(这种也是我们最常用的分组与引用的方法),见例子:(?P123)对于这个分组, 你即可以使用传统方法\1,也可以使用(?P=num)进行引用,最终得到的结果是一样的,见例子:
而\g其实与(?P=name)它俩性质一样, 都是用于对(?P)分组的引用, 特殊的地方在于,\g专门用在re.sub(替换内容, 匹配内容)中的"替换内容"部分总结:
1.(?P)就是分组,只不过如果你在分组时这样写了,后面引用分组中的内容时,即可以使用"\数字"的形式, 也可以使用(?P=name)的形式.
2.(?P=name)在第1点中说过了, 它就是对(?P)这个分组使用名称进行引用的手段,和"\数字"没啥区别.
3.\g专门用于re.sub这个函数的替换部分,来引用(?P)分组中的内容.
*.最后,(?P)用于分组, (?P=name)和\g用于引用.? //根据上面讲的,想一下(?P)用于分组时和单独的圆括号,(),有什么区别? 再想一下\g虽然也是引用,但是它有限制, 这个限制是什么? 这两个问题想明白了,你应该也就明白了.另外(?P=name)是要在分组是使用(?P)时才能使用,如果分组就是一个圆括号,(),只能老老实实使用"\数字"的形式进行引用.
写在最后: 上面虽说了问题中三者的用法, 但是逻辑组织并不是很清晰, 题主看完自己再自己总结一下吧.
-----扩展阅读-----
=====
希望可以帮到题主, 欢迎追问.
python中{}[]是无世纪的年份。
%Y会被无世纪的年份所替代。%m会被01到12之间的一个十进制月份数替代,其他依次类推。
(1)%c 整数转成对应的 ASCII 字元;
(2)%d 整数转成十进位;
(3)%f 倍精确度数字转成浮点数;
(4)%o 整数转成八进位。
扩展资料:
由于Python语言的简洁性、易读性以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python来教授程序设计课程。例如卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学及编程导论就使用Python语言讲授。
众多开源的科学计算软件包都提供了Python的调用接口,例如著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK。
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!