re正则表达式语法
下面为re正则表达式的语法:
语法 | 含义 |
---|---|
. | 匹配除换行符\n的任意字符,若设定re.DOTALL则可匹配换行符\n在内任意字符 |
\d | 匹配任意数字 |
\D | 匹配任意非数字 |
\s | 匹配空白字符(\n,\r,\t,空格) |
\w | 匹配a-z、A-Z和数字和下划线 |
\W | 匹配非\w字符 |
\A | 匹配以某个字符开头的字符串 |
^ | 匹配以某个字符开头的字符串 |
\Z | 匹配以某个字符结尾的字符串 |
$ | 匹配以某个字符结尾的字符串 |
符号 | 含义 |
---|---|
[] | 匹配括号中的任意一种 |
* | 匹配字符0次或任意多次 |
+ | 匹配字符1次或任意多次 |
? | 匹配字符0次或1次 |
l | 匹配两边任意一个字符串(打字原因这里用的是小写的L) |
{m} | 匹配m个字符 |
{n,m} | n<m,匹配n到m个字符 |
(.*?) | 其中?表示非贪婪模式 |
re常用函数
import re
re.match() # 从左到右匹配
re.search() # 文本搜索
re.findall() # 定位所有的符合文本
re.sub("a","b",text) # 替换
re.split("方式",text) # 以“方式”分割text
# re.split()
text = "0adsfa1asdf54fdsa554a"
ret = re.split("[0-9]+",text)
print(ret) # 注意结果中会有空格,因为第一个字符为数字,分割操作会把0左边也视为一部分
>>>['', 'adsfa', 'asdf', 'fdsa', 'a']
===================================================
关于re.sub
import re
filepath = r'C:\Users\123\Desktop\work\python\MLiA_SourceCode\machinelearninginaction\Ch09/ex2.text'
print(filepath)
filepath = re.sub('\\\\','/',filepath)
print(filepath)
注意这里对转义字符“\”进行替换,需要使用四个“\”。