iis建立的网站打不开,佰汇康网站建设,建设银行e路通网站,做网站必须先买域名吗不好意思鸽了这么久#xff0c;这几天备赛美赛没有太多时间写博客。好了闲话少叙#xff0c;这次为大家带来的是正则表达式的相关介绍。正则表达式又叫做规则表达式,英文全称Regular Expression。是一种对字符串操作的逻辑公式#xff0c;就是用事先定义好的一些特定字符、及…不好意思鸽了这么久这几天备赛美赛没有太多时间写博客。好了闲话少叙这次为大家带来的是正则表达式的相关介绍。正则表达式又叫做规则表达式,英文全称Regular Expression。是一种对字符串操作的逻辑公式就是用事先定义好的一些特定字符、及这些特定字符的组合组成一个“规则字符串”包括普通字符如字母a~z和特殊字符称为元字符如 “” “*”以及 “?”。正则表达式使用单个字符串来描述或匹配一系列匹配某个句法规则的字符串表达对字符串的一种过滤逻辑例如检索、替换符合规则的文本。在Python中使用re标准库来调用正则表达式处理函数。
re.match
match函数用于匹配字符串特点是匹配项必须位于字符串的起始位置具体用法如下。
import re
a Hello,this is a message
b re.match(Hello, a)
c re.match(message, a)
print(b)
print(c)
print(re.match(Hello, a).span())
# 注意区分大小写
print(re.match(hello, a))
re.Match object; span(0, 5), matchHello
None
(0, 5)
None返回值是一个包含字符串位置索引的元组或者是None。
re.search
search函数会搜索整个字符串不论匹配项是否在开头只要字符串中包含匹配项就会返回元组。
import re
a Hello,this is a message
b re.search(Hello, a)
c re.search(message, a)
print(b.span())
print(c.span())(0, 5)
(16, 23)
re.sub
sub函数用于文本替换如果设置替换内容为空则可以起到删除的效果。
import re
name 赵钱孙李赵钱孙李赵# 替换作用
name1 re.sub(李, 周, name)
print(name1)# 删除作用
name2 re.sub(赵, , name)
print(name2)# 选定替换次数默认值为0表示替换所有
name3 re.sub(赵, 周, name, count2)
print(name3)
赵钱孙周赵钱孙周赵
钱孙李钱孙李
周钱孙李周钱孙李赵
模式语法
上述函数都是对某一确切字符串进行操作那么如果想要匹配转义字符或者数字又该怎么做呢这就要请出正则表达式中的语法部分也就是文章开头提到的特定字符了。
^匹配字符串的开头$匹配字符串的末尾。.匹配任意字符除了换行符当re.DOTALL标记被指定时则可以匹配包括换行符的任意字符。[...]用来表示一组字符,单独列出[amk] 匹配 am或k[^...]不在[]中的字符[^abc] 匹配除了a,b,c之外的字符。re*匹配0个或多个的表达式。re匹配1个或多个的表达式。re?匹配0个或1个由前面的正则表达式定义的片段非贪婪方式re{ n}匹配n个前面表达式。例如o{2}不能匹配Bob中的o但是能匹配food中的两个o。re{ n,}精确匹配n个前面表达式。例如o{2,}不能匹配Bob中的o但能匹配foooood中的所有o。o{1,}等价于o。o{0,}则等价于o*。re{ n, m}匹配 n 到 m 次由前面的正则表达式定义的片段贪婪方式a| b匹配a或b(re)匹配括号内的表达式也表示一个组(?imx)正则表达式包含三种可选标志i, m, 或 x 。只影响括号中的区域。(?-imx)正则表达式关闭 i, m, 或 x 可选标志。只影响括号中的区域。(?: re)类似 (...), 但是不表示一个组(?imx: re)在括号中使用i, m, 或 x 可选标志(?-imx: re)在括号中不使用i, m, 或 x 可选标志(?#...)注释.(? re)前向肯定界定符。如果所含正则表达式以 ... 表示在当前位置成功匹配时成功否则失败。但一旦所含表达式已经尝试匹配引擎根本没有提高模式的剩余部分还要尝试界定符的右边。(?! re)前向否定界定符。与肯定界定符相反当所含表达式不能在字符串当前位置匹配时成功。(? re)匹配的独立模式省去回溯。\w匹配数字字母下划线\W匹配非数字字母下划线\s匹配任意空白字符等价于 [\t\n\r\f]。\S匹配任意非空字符\d匹配任意数字等价于 [0-9]。\D匹配任意非数字\A匹配字符串开始\Z匹配字符串结束如果是存在换行只匹配到换行前的结束字符串。\z匹配字符串结束\G匹配最后匹配完成的位置。\b匹配一个单词边界也就是指单词和空格间的位置。例如 er\b 可以匹配never 中的 er但不能匹配 verb 中的 er。\B匹配非单词边界。er\B 能匹配 verb 中的 er但不能匹配 never 中的 er。\n, \t, 等。匹配一个换行符。匹配一个制表符, 等\1...\9匹配第n个分组的内容。\10匹配第n个分组的内容如果它经匹配。否则指的是八进制字符码的表达式。
笔者这张表引用自Python3 正则表达式 下面是相应的代码举例使用findall函数返回所有匹配项\d代表匹配项为连贯数字。
import re#第一种写法匹配多个数字
a re.findall(\d, Alan33cat6hurt)
print(a)# 第二种写法
b re.compile(\d)
# compile用来创建一个正则表达式
c b.findall(Alan33cat6hurt)
print(b)
print(c)
# 可以设置搜索匹配项的范围
d b.findall(Alan33cat6hurt, 0, 5)
print(d)
[33, 6]
re.compile(\\d)
[3, 3, 6]
[3]
以上就是Python中正则表达式的相关用法笔者对这方面了解也不是很多欢迎大家查漏补缺。