1. 首页
  2. Python

Python基础知识之二:正则表达式常用功能细解!

“u003Cdivu003Eu003Cp class=”正文”u003E其实正则在我的爬虫中已经用的不是很多了,用xpath的网页标签去找内容,容易理解也方便多了,但是不用正则不是因为有更好的方法,而是正则用的好用的精通很难,比如各种符号对应的方法等等,今天就把经常用的一些正则简单说说,除了一些特殊的,基本就够用了。u003Cu002Fpu003Eu003Cp class=”正文”u003E正则介绍u003Cu002Fpu003Eu003Cp class=”正文”u003E正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同;但不用担心,不被支持的语法通常是不常用的部分。如果已经在其他语言里使用过正则表达式,只需要简单看一看就可以上手了。u003Cu002Fpu003Eu003Cp class=”正文”u003E以上是复制网上一段,简单的说,就是它在各种语言中都存在,有自己的语法,功能非常强大,等等。u003Cu002Fpu003Eu003Cp class=”正文”u003E正则模块在python里面需要安装一下,cmd下输入命令:pip install re即可。使用时 import reu003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cstrongu003E欢迎大家来和我一起讨论、交流的哦,私信我发送”资料”就好!u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cstrongu003E干货、findall的几种常用方法u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F15212099848294c066773ff” img_width=”533″ img_height=”211″ alt=”Python基础知识之二:正则表达式常用功能细解!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cstrongu003E这段代码意思是,在a变量中查找所有ui,以列表形式赋值给b。应用于计算字符出现次数。u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F15212099849453e107749c5″ img_width=”425″ img_height=”226″ alt=”Python基础知识之二:正则表达式常用功能细解!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cstrongu003E加了个符号^表示判断如果是ss开头则返回ss,否则返回空列表u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F15212099850690d674d4dfa” img_width=”497″ img_height=”225″ alt=”Python基础知识之二:正则表达式常用功能细解!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cstrongu003E当然也有判断结尾字符的,用$标识u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F15212099851800bbd43880c” img_width=”507″ img_height=”233″ alt=”Python基础知识之二:正则表达式常用功能细解!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cstrongu003E [ ]内字符分别和后面字符组合匹配,返回所有的匹配内容u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F1521209985327418c511c6b” img_width=”525″ img_height=”230″ alt=”Python基础知识之二:正则表达式常用功能细解!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cstrongu003E这里用.代替任意字符,即可匹配字符串内v和前面的1个字符u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F15212099854276400d98df5″ img_width=”532″ img_height=”237″ alt=”Python基础知识之二:正则表达式常用功能细解!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cstrongu003E’d’用来匹配0-9内的1个数字返回,用’\’转义,注意是返回一个数字,比如上方的12,返回的是’1′,’2’u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cimg src=”http:u002Fu002Fp9.pstatp.comu002Flargeu002Fpgc-imageu002F1521209985547b02d3ba7eb” img_width=”534″ img_height=”227″ alt=”Python基础知识之二:正则表达式常用功能细解!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cstrongu003E当然解决办法也有,用2个’\d’即可了,想匹配几位就用几个u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F1521209985661115f55eeb7″ img_width=”598″ img_height=”239″ alt=”Python基础知识之二:正则表达式常用功能细解!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cstrongu003E’d’是匹配数字,’D’表示除了数字都匹配,包括符号u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F1521209985786af22dd8d38″ img_width=”768″ img_height=”235″ alt=”Python基础知识之二:正则表达式常用功能细解!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cstrongu003E’w’u003Cu002Fstrongu003E 在正则里面代表匹配从小写a到z,大写A到Z,数字0到9包含前面这三种情况,如上图u003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F1521209985889d3c5c16f17″ img_width=”341″ img_height=”231″ alt=”Python基础知识之二:正则表达式常用功能细解!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”正文”u003E’W’大写的话,就正好相反,匹配数字、字母之外的内容u003Cu002Fpu003Eu003Cp class=”正文”u003E以上2种情况都是匹配1个字符,如果要多个有2种方式,如下:u003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F1521209985977c67eb42369″ img_width=”386″ img_height=”233″ alt=”Python基础知识之二:正则表达式常用功能细解!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”正文”u003E这是3个字符的u003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F15212099860920155374c5d” img_width=”330″ img_height=”247″ alt=”Python基础知识之二:正则表达式常用功能细解!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”正文”u003E这是多个字符直到不在符合条件为止u003Cu002Fpu003Eu003Cp class=”正文”u003E以下是今天的重点了,也是我最经常用的匹配方式,划重点了!u003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F1521209986319a8dad5fca9″ img_width=”422″ img_height=”228″ alt=”Python基础知识之二:正则表达式常用功能细解!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”正文”u003E这里括号()的用法表示匹配是取括号内里面的内容,这里.*是正则贪婪匹配语法,也就是尽可能多的匹配u003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F15212099864392992223186″ img_width=”435″ img_height=”223″ alt=”Python基础知识之二:正则表达式常用功能细解!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”正文”u003E加个?就变成非贪婪匹配,也就是最小范围匹配了u003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F15212099865551a996fdd16″ img_width=”515″ img_height=”310″ alt=”Python基础知识之二:正则表达式常用功能细解!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”正文”u003E这里,在最后加个re.I(i的大写),即忽略大小写u003Cu002Fpu003Eu003Cp class=”正文”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F1521209986660473b1fd1cf” img_width=”492″ img_height=”306″ alt=”Python基础知识之二:正则表达式常用功能细解!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”正文”u003E还一种情况是存在换行符(\n)的情况,加上re.S(大写s),即可匹配忽略换行符,也就是多行匹配了!u003Cu002Fpu003Eu003Cp class=”正文”u003E以上几种情况(特别是最后4种)掌握了,那基本可以搞定70%或者以上的情况,其他的方式还有很多(我都不怎么常用),就不一一举例了,大家有兴趣可以自行学习哦!u003Cu002Fpu003Eu003Cp class=”正文”u003E今天的分享就先到这里了~喜欢就点个赞呗~u003Cu002Fpu003Eu003Cp class=”正文”u003E欢迎大家来和我一起讨论、交流的哦,私信我发送”资料”就好!u003Cu002Fpu003Eu003Cu002Fdivu003E”

原文始发于:Python基础知识之二:正则表达式常用功能细解!

主题测试文章,只做测试使用。发布者:战鹰,转转请注明出处:http://www.cxybcw.com/13338.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code