欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python re 正则表达式库的使用

程序员文章站 2022-07-10 08:22:04
...
  1. . 匹配任何字符,除了\n,占位符
    •       匹配前一个字符0次或无限次
      
    •       匹配前一个字符1次或无限次
      
    ? 匹配前一个字符0次或1次
    .* 贪心算法
    .*? 非贪心算法
    () 括号内的数据作为结果返回
    (\d+) 匹配纯数字
    [] 对单个字符给出取值范围, [abc]:a.b.c [a-z]:a到z字符
    [^] 对单个字符排除范围, [^abc]:非a或b或c
    | 或, abc|def:abc或def
    {m} 扩展前一个字符m次, ab{2}c:abbc
    ^ 匹配字符串开头
    $ 匹配字符串结尾
    \d 数字,等价于[0-9]

2.正则表达式常用方法
findall:匹配符合规则的内容,返回结果的列表

search: 匹配并提取第一个符合规则的内容,返回一个正则表达式对象(object)
         .group(2)   取第二个
         匹配一个内容时,用search,提高效率

sub:    替换符合规律的内容,返回替换后的值
         re.sub("xx(.*?)xx","替换为该内容", 原字符串)

3.列子
a = “xuufhxxixxaasfasxxlovexxasdasdaxxyouxxasdasa”

print(re.findall("xx.*xx", a))
    >>>['xxixxaasfasxxlovexxasdasdaxxyouxx']

print(re.findall("xx.*?xx", a))
    >>>['xxixx', 'xxlovexx', 'xxyouxx']

print(re.findall("xx(.*?)xx", a))
    >>>['i', 'love', 'you']
  1. re.S的使用
    a = “”“xuufhxxixxaasfasxx
    lovexxasdasdaxxyouxxasdasa”""

    print(re.findall(“xx(.*?)xx”, a, re.S))
    >>>[‘i’, ‘love’, ‘you’]

    作用:使‘.’号匹配换行符(\n)
    扩展: re.I 忽略大小写
    re.M ^字符能将每行当作字符串匹配开始

5.当表达式有特殊符号时,用r转义
r(‘正则表达式’)
6.正则表达式的两种使用方法
# 一次操作
a = re.search(r’xxx’, str)

# 正则表达式需要多次使用
b = re.compile(r'xxx')
a = b.search(str)
相关标签: re