栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python笔记3-正则表达式

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python笔记3-正则表达式

  1. 正则表达式中常用的字符

符号 描述

. 匹配任意一个字符(除了n)

[] 匹配列表中的字符

w 匹配字母、数字、下划线,即 a-z,A-Z,0-9,_

W 匹配不是字母、数字、下划线

s 匹配空白字符,即空格(n,t)

S 匹配不是空白的字符

d 匹配数字,即 0-9

D 匹配非数字的字符

^ 匹配字符串开头

$ 匹配字符串结尾。

b 匹配一个单词的边界

B 匹配非单词的边界

【注】^与[^m]中的“^”的含义并不相同,后者“^”表示“除了….”的意思

2、re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

3、贪婪模式指 Python 里数量词默认是贪婪的,总是尝试匹配尽可能多的字符。非贪婪模

式与贪婪相反,总是尝试匹配尽可能少的字符,可以使用"*","?","+","{m,n}"后面加上?,使

贪婪变成非贪婪

4、只配置中文

s = "士大夫卡A  的24东走西顾堪"
filtrate = re.compile(u'[^u4E00-u9FA5]')
filtered_str = filtrate.sub(r'', s)
print(filtered_str)

#输出
#士大夫卡的东走西顾堪

5、Python 的 re 模块提供了re.sub用于替换字符串中的匹配项。

re.sub(pattern, repl, string, count=0, flags=0)

参数:

  • pattern : 正则中的模式字符串。
  • repl : 替换的字符串,也可为一个函数。
  • string : 要被查找替换的原始字符串。
  • count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配

import re

phone = "1-1452839475-4352 #Location oscar retwertqe"

# 去掉location前面的字符
num = re.sub(r'^.*[lL]ocation', "location", phone, 1)
print("电话号码是: ", num)

# 删除非数字(-)的字符串
num = re.sub(r'D', "", phone)
print("电话号码是 : ", num)

6、re.compile 函数 :参考Python 正则表达式 | 菜鸟教程

compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。

re.compile(pattern[, flags])

参数:

  • pattern : 一个字符串形式的正则表达式

  • flags : 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:

    1. re.I 忽略大小写
    2. re.L 表示特殊字符集 w, W, b, B, s, S 依赖于当前环境
    3. re.M 多行模式
    4. re.S 即为 . 并且包括换行符在内的任意字符(. 不包括换行符)
    5. re.U 表示特殊字符集 w, W, b, B, d, D, s, S 依赖于 Unicode 字符属性数据库
    6. re.X 为了增加可读性,忽略空格和 # 后面的注释
      pattern = re.compile(r'([a-z]+) ([a-z]+)', re.I) #re.I 忽略大小写
      m = pattern.match('Hello World Wide Web')
      print(m)
      print(m.group(0))
      print(m.groups())
      
      #输出结果:
      #
      #Hello World
      #('Hello', 'World')
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1029675.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号