python正则表达式

python正则表达式

  • 概念:对字符串的一种逻辑公式,
  • 使用规则从原字符串中提取想要的字符串
  • 应用场景:表单验证,爬虫

字符

  • 普通字符:字母,数字,汉字,下划线,语言符号,没有特殊定义的符号
    • 在匹配中只匹配与自身相同的一个字符
  • 元字符:
    • . :匹配除了换行\n以外的任意一个字符
    • [ ] :匹配字符集中的一个字符如[asfde]
    • [^] :匹配字符集以外的字符如[^asdf]
    • - :字符区间如0-9,a-z
    • \ :转义字符
    • ():对表达式进行分组,括号中的内容作为一个整体,并获取匹配的值
    • |:逻辑或操作符
  • 预定义匹配字符集
    • \d: [0-9]
    • \D:[^0-9]
    • \w:[a-zA-Z0-9_]
    • \W:[^a-zA-Z0-9_]
    • \s:空格,制表符,换页符等空白字符
    • \S:除空白字符以外的字符
  • 正则字符.png

重复匹配

  • 一个字符匹配多次,可以在匹配规则中将字符重复多次,也可以在要多次匹配的字符后使用{n}表示
  • {n}:匹配n次
  • {m,n}:m<=n,匹配的次数在m到n之间,包含m,n
  • {m,}:匹配次数大于等于m次,
  • {,n}:匹配次数小于等于n次
  • ?:相当于{0,1}匹配0次或1次
  • +:相当于{1,},至少匹配1次
  • *:相当于{0,},不限匹配次数

位置匹配和非贪婪匹配

  • 位置匹配
    • ^:从字符串开始匹配
    • $:在字符串结束的地方匹配
    • \b:匹配单词边界,
    • \B:匹配非单词边界
  • 贪婪与非贪婪模式
    • 在重复匹配时,正则默认总是尽可能多的匹配--贪婪匹配
    • 非贪婪则是尽可能少的匹配
    • (.*?):匹配 (.) 中的字符集组成的字符串0次或1次

re模块常用方法

  • re.complie(pattern[,flags])-->根据正则表达式的字符串创建模式对象,该对象可以调用匹配方法

  • re.search(pattern,string[,flags])-->在字符串中查找,从任意位置开始,返回查找到的对象

  • re.match(pattern,string[,flags])-->在字符串开始处匹配

  • re.findall(pattern,string[,flags])-->列出字符串模式中的所有匹配项

  • re.split(pattern,string[,maxsplit=0,flags])-->根据匹配模式分割字符串,返回分割后的字符串列表,maxsplit分割次数

  • re.sub(pat,repl,string[,count=0,flags])-->将字符串中所有的pat替换成repl,返回替换后的新字符串,count替换次数

  • flags参数:

    • re.A ascii字符模式
    • re.I 不区分大小写
    • re.L 做本地化识别
    • re.M 多行匹配
    • re.S 使.能够匹配所有字符
    • re.U Unicode字符集解析字符
    • re.X

分组

  • 使用()将匹配出来的字符进行二次筛选

  • .groups()返回二次筛选后组成的元组

  • .group()返回匹配到的所有字符串

  • .group(n)返回匹配到的字符串二次筛选后的第n个字符串

  • import re
    pat = 'a(.*?)a.*?f(.*?)g'
    # group()这是该规则匹配大的所有字符
    # group(1)表示第一个(.*?)匹配到的字符组成的字符串
    # groups()表示这两个(.*?)匹配到的字符串组成的元组
    
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,911评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,014评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,129评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,283评论 1 264
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,159评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,161评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,565评论 3 382
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,251评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,531评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,619评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,383评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,255评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,624评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,916评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,199评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,553评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,756评论 2 335