python的正则表达式

1.re.findall("a","ab")

  a:匹配规则  ab:要匹配的内容

  结果以列表的形式返回:['a']

2.元字符:".","^","$","*","+","?","{ }","[ ]","|","( )",""

  ".":匹配除换行符“ ”以外任何字符;

import re
A = re.findall('ab.d',"abcdefg")
B = re.findall('ab.e',"abcdefg")

print(A) #['abcd']
print(B) #[]

  "^":匹配字符串开头

    

import re
A = re.findall('^ab',"abcdefg")
B = re.findall('^bc',"abcdefg")

print(A) #['ab']
print(B) #[]

  "$":匹配字符串结尾

import re
A = re.findall('ab$',"abcdefg")
B = re.findall('fg$',"abcdefg")

print(A) #[]
print(B) #['fg']

  "*":匹配前一个字符0次或无限次

import re
A = re.findall('ab*',"abbdefg")
B = re.findall('ab*',"acdefg")

print(A) #['abb']
print(B) #['a']

  "+":匹配前一个字符1次或无限次

  "?":匹配前一个字符0次或1次

  "{n}":匹配前一个字符n次

  "{n,m}":匹配前一个字符n至m次(闭区间)

  "[ab]":匹配a或b

import re
A = re.findall('a[bc]d',"abcdefg")
B = re.findall('a[bc]d',"abdefg")
C = re.findall('a[bc]d',"acdefg")

print(A) #[]
print(B) #['abd']
print(C) #['acd']

  "":1.反斜杠后面跟元字符,使元字符去除特殊功能

    2.后面跟普通字符,产生特殊功能

    3.引用序列对应的字组所匹配的字符串

import re
A = re.search(r"(alex)(eric)com2","alexericcomeric").group()

print(A) #alexericcomeric

    d:匹配任何十进制数,相当于[0-9]

    D:匹配任何非数字字符,相当于[^0-9]

    s:匹配任何空白字符,相当于[ fv]

    S:匹配任何非空白字符,相当于[^ fv]

    w:匹配任何字母数字字符,相当于[a-zA-z0-9]

    W:匹配任何非字母数字字符,相当于[^a-zA-z0-9]

    :匹配一个单词边界,就是指单词和空格间的位置

3.“*”、“+”、“?”都是贪婪匹配(指尽可能多的匹配),在后面加个"?",可以该非贪婪模式,但如果前后均有限制条件,则取括号中的值

import re
A = re.findall(r"a(d+?)","a23b") #非贪婪模式
B = re.findall(r"a(d+)","a23b")

print(A) #['2']
print(B) #['23']
import re
A = re.findall(r"a(d+?)b","a23b")
B = re.findall(r"a(d+)b","a23b")

print(A) #['23']
print(B) #['23']

4.r表示原生字符,也就是说不转义字符不需要再次被转义

  比如你要表示‘ ’,可以这样:r' '
  但是如果你不用原生字符 而是用字符串你得这样:‘\n’

5.re.I:使匹配对大小写不敏感

  re.L:做本地化识别(locale-aware)匹配

  re.M:多行匹配,影响^和$

  re.S:使“.”匹配包括换行在内的所有字符

  re.U:根据Unicode字符集解析字符

6.group():返回被RE匹配的字符串

  start():返回匹配开始的位置

  end():返回匹配结束的位置

  span():返回一个元组包含匹配(开始,结束)的位置

 7.如果在正则表达式中使用了"()",匹配结果为括号中的内容,使用"?:"可以变为非捕获

import re
A = re.findall(r"www.(baidu|abc).com","www.baidu.com")
B = re.findall(r"www.(?:baidu|abc).com","www.baidu.com")

print(A) #['baidu']
print(B) #['www.baidu.com']
原文地址:https://www.cnblogs.com/omg-hxy/p/9097925.html