揭阳自助建站,模板网站配置文件,网站首页外链,vivo官方网站进入Python的正则表达式模块是re。要使用它#xff0c;需要先导入re模块。下面是一些常用的正则表达式操作#xff1a; re.match(pattern, string): 从字符串的开始位置匹配一个模式#xff0c;并返回匹配对象。如果匹配成功#xff0c;则返回匹配对象#xff1b;如果匹配失败…Python的正则表达式模块是re。要使用它需要先导入re模块。下面是一些常用的正则表达式操作 re.match(pattern, string): 从字符串的开始位置匹配一个模式并返回匹配对象。如果匹配成功则返回匹配对象如果匹配失败则返回None。 re.search(pattern, string): 在字符串中搜索匹配模式的第一个位置并返回匹配对象。如果匹配成功则返回匹配对象如果匹配失败则返回None。 re.findall(pattern, string): 在字符串中搜索匹配模式的所有位置并返回一个列表。列表中的每个元素都是一个匹配对象。 re.sub(pattern, repl, string): 将字符串中匹配模式的部分替换为指定的字符串并返回替换后的字符串。 re.split(pattern, string): 根据匹配模式分割字符串并返回一个列表。
下面是一些常用的正则表达式元字符和修饰符 元字符 . : 匹配除换行符之外的任意字符。\d : 匹配任意数字。\D : 匹配任意非数字。\w : 匹配任意字母、数字和下划线。\W : 匹配任意非字母、数字和下划线。\s : 匹配任意空白字符包括空格、制表符、换行符等。\S : 匹配任意非空白字符。\b : 匹配一个单词边界即单词和非单词之间的位置。\B : 匹配一个非单词边界。 修饰符 re.I : 忽略大小写匹配。re.M : 多行匹配^和$可以匹配每一行的开始和结束。re.S : 单行匹配.可以匹配换行符。
除了以上介绍的常用操作、元字符和修饰符还有更多的正则表达式操作和特殊字符可以在Python的re模块中使用。
判断以某个内容为开始某个内容为结束的字符串
例如
# codingutf-8import reinput_str input()a re.search(r^lxj, input_str)if a is not None:print(a.span())
else:print(a)b re.search(rlxj$, input_str)if b is not None:print(b.span())
else:print(b)在Python的正则表达式中有几个通配符可以用来匹配不同类型的字符。
.句点匹配任意单个字符除了换行符\n以外的任何字符。
例如正则表达式a.b可以匹配acb、axb、a6b等。
*星号匹配前面的字符零次或多次。
例如正则表达式ab*c可以匹配ac、abc、abbc、abbbc等。
加号匹配前面的字符至少一次或多次。
例如正则表达式abc可以匹配abc、abbc、abbbc等但不能匹配ac。
?问号匹配前面的字符零次或一次。
例如正则表达式ab?c可以匹配ac、abc但不能匹配abbc。
这些通配符可以与其他正则表达式元字符和字符类一起使用以匹配更复杂的模式。 例如
# codingutf-8import reinput_str input()a re.findall(r.ython, input_str)print(a)# codingutf-8import reinput_str input()# 编写获取she或者he的字符串并存储到变量a中
a re.findall(rs?he, input_str)print(a)
重复次数 在正则表达式中我们可以使用 {N} 来表示一个字符组连续匹配 N 次。例如
import rea re.findall(r[\d]{4}-[\d]{7}, 张三0731-8825951李四0733-8794561)
print(a)
输出为 [0731-8825951, 0733-8794561]
重复区间 有时候我们不知道具体匹配字符组要重复的次数可以使用 {M,N} 来表示重复的区间其中 M 是下界N 是上界。例如
import rea re.search(r[\d]{3,4}, 0731)
b re.search(r[\d]{3,4}, 073)
print(a)
print(b)
执行结果输出如下 re.Match object; span(0, 4), match0731 re.Match object; span(0, 3), match073
非贪婪模式 默认情况下正则表达式是贪婪模式即尽可能多地匹配字符。要使用非贪婪模式可以在表达式后面加上 ?。例如
import rea re.search(r[\d]{3,4}?, 0731)
b re.search(r[\d]{3,4}?, 073)
print(a)
print(b)
执行结果输出如下 re.Match object; span(0, 3), match073 re.Match object; span(0, 3), match073
# codingutf-8import reinput_str input()
# 1、基于贪心模式匹配字符串中重复出现2个数字的子字符串并存储到变量a。a re.findall(r[\d]{2}, input_str)print(a)# 2、基于贪心模式匹配字符串中重复出现4-7个数字的子字符串并存储到变量b。b re.findall(r[\d]{4,7}, input_str)print(b)
在正则表达式中我们经常会遇到需要匹配一个或多个重复的字符的情况。为了简化这种常见需求正则表达式提供了两个特殊的符号 * 表示匹配一次或多次重复的字符。例如[\d] 可以匹配一个或多个数字字符。 * *表示匹配零次或多次重复的字符。例如[\d]* 可以匹配零个或多个数字字符。
使用这两个符号来匹配字符串中的连续数字例如
import re# 使用 符号匹配至少一个数字
a re.findall(r\d, 0731-8859456)
print(a) # 输出 [0731, 8859456]# 使用 * 符号匹配零个或多个数字
b re.findall(r\d*, 0731-8859456)
print(b) # 输出 [0731, 8859456]
在这个例子中我们使用了 re.findall() 函数来查找所有匹配的数字序列。通过使用 和 * 符号我们可以更简洁地表示匹配一个或多个数字的需求。 # codingutf-8import reinput_str input()
# 1、基于贪心模式匹配字符串中连续出现5个数字以上的子字符串并存储到变量a。
a re.findall(r[\d]{5,}, input_str)print(a)# 2、匹配字符串中都为数字的子字符串并存储到变量b。
b re.findall(r[\d][0-9], input_str)print(b)