python正则表达式(一)——正则表达式的编写

前言

示例:今天为大家简单介绍python中如何使用正则表达式。基础概念可以百度或在菜鸟教程查看,这里只介绍实践如何使用。

提示:以下是本篇文章正文内容,下面案例可供参考

正则表达式的编写

1.限定符有哪些?

参考链接:https://www.runoob.com/regexp/regexp-metachar.html
link
限定符:用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配

限定符描述
*匹配前面的子表达式零次或多次
+匹配前面的子表达式一次或多次,最少匹配一次
?匹配前面的子表达式零次或一次,可以不匹配到这个子表达式,匹配也只能匹配一次
{n}规定匹配前面的子表达式n次
{n}规定匹配前面的子表达式n次
{n,}规定最少匹配前面的子表达式n次,最多无限制
{n,m}规定最少匹配前面的子表达式n次,最多匹配子表达式m次

2.正则表达式的给定组件有哪些?

(1)匹配一个字符

# 在字符串中匹配‘o’
pattern = 'o'

用限定符限制匹配次数

# 在字符串中匹配0个或多个‘o’
pattern = 'o*'

(2)通过选择器‘|’匹配多个可能的字符

# 在字符串中匹配‘a’或‘e’或‘i’或‘o’或‘u’
pattern = 'a|e|i|o|u'

用限定符限制匹配次数

# 在字符串中匹配1个或多个‘a’或‘e’或‘i’或‘o’或‘u’,或他们的组合
pattern = '(a|e|i|o|u)+'

(3)匹配在字符集中的任何一个字符

ps:字符集中的‘.’只匹配.而不是任意字符

# 在字符串中匹配‘a’或‘e’或‘i’或‘o’或‘u’
# 和'a|e|i|o|u'的功能相同
pattern = '[aeiou]'
# 在字符串中匹配除‘a’或‘e’或‘i’或‘o’或‘u’之外的字符
pattern = '[^aeiou]'
# 在字符串中匹配'a'到‘z’之间的所有字符
pattern = '[a-z]'
# 在字符串中匹配'1'到‘9’之间的所有字符
pattern = '[1-9]'
# 在字符串中匹配除'a'到‘z’之间的所有字符的字符
pattern = '[^a-z]'

用限定符限制匹配次数

# 在字符串中匹配1个或多个‘a’或‘e’或‘i’或‘o’或‘u’,或他们的组合
# 例如‘a’或‘aa’或‘ae’或‘eee’或‘aeioo’等等
pattern = '[aeiou]+'

(4)匹配一个字符串

# 在字符串中匹配‘python’
pattern = 'python'

用限定符限制匹配次数

# 在字符串中匹配‘python’或‘pythonn’
pattern = 'python?'
# 在字符串中匹配‘python’或‘pythonn’或‘pythonnn’
pattern = 'python{1,3}'

(5)通过选择器‘|’匹配多个可能的字符串

# 在字符串中匹配‘python’或‘java’
pattern = 'python|java'

用限定符限制匹配次数

# 在字符串中匹配‘python’或‘pythonn’或‘pythonnn’或‘java’
pattern = 'python{1,3}|java'

(6)匹配多个可能的字符串多次

# 在字符串中匹配‘python’或‘java’0次或1次
pattern = '(python|java)?'

用限定符限制匹配次数

# 在字符串中匹配‘python’或‘java’或‘pythonpython’
# 或‘pythonjava’ 或‘javapython’或‘javajava’
pattern = '(python|java)+'

(7)一些可以代表很多字符的特殊字符

特殊字符描述
.匹配除换行符(\n、\r)之外的任何单个字符,相等于 [^\n\r]要匹配 . ,请使用 .
\s匹配所有空白符,包括换行
\S非空白符,不包括换行
\w匹配字母、数字、下划线。等价于 [A-Za-z0-9_]
\W匹配非字母、数字、下划线。等价于 [^A-Za-z0-9_]
\d匹配一个数字字符。等价于 [0-9]
\D匹配一个非数字字符。等价于 [^0-9]

(8)匹配一些控制字符

控制字符:在字符集中,有一类字符具有这样的特性:当从键盘上输入这个字符时,显示器上就可以显示这个字符,即输入什么就显示什么。这类字符称为可显示字符,如a、b、c、$、+和空格符等都是可显示字符。
另一类字符却没有这种特性。它们或者在键盘上找不到对应的一个键(当然可以用特殊方式输入),或者当按键以后不能显示键面上的字符。其实,这类字符是为控制作用而设计的,故称为控制字符

特殊字符描述
\f匹配一个换页符。等价于 \x0c 和 \cL。
\n匹配一个换行符。等价于 \x0a 和 \cJ。
\r匹配一个回车符。等价于 \x0d 和 \cM。
\t匹配一个制表符。等价于 \x09 和 \cI
\v匹配一个垂直制表符。等价于 \x0b 和 \cK。

例如\n

import re
pattern = '[\n]'
string2 = '[\n]'
string3 = '''
'''
matchobj1 = re.search(pattern,string2)
matchobj2 = re.search(pattern,string3)
print(matchobj1)
print(matchobj2)

输出结果为
在这里插入图片描述
注意:匹配.和限定符(? * +)还有左右括号()这些特殊符号要用‘\’进行转义才能匹配特殊符号本身

3.正则表达式的定位符

定位符用来限定满足正则表达式的子串在原字符串的位置

特殊字符描述
^匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与 \n 或 \r 之后的位置匹配。
$匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与 \n 或 \r 之前的位置匹配。
\b匹配一个单词边界,即字与空格间的位置
\B非单词边界匹配

例如

# 下面这个模式只能匹配dogcat这个字符串
pattern = '^dogcat$'
相关推荐

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
评论

打赏作者

努力努力再努力ya

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值