正则表达式

目录

3.1 字符含义

3.2 使用案例

正则表达式是用来匹配字符串的字符序列,在处理字符序列时,有很大便利。

3.1 字符含义

  • 打印字符:

1、[...]        匹配 [...] 中的所有单字符;例如 [aeiou] 匹配字符串 "google runoob taobao" 中所有的eoua字母。

2、[^...] 匹配除了 [...] 中字符的所有字符;例如 aeiou 匹配字符串 "google runoob taobao" 中除了 eoua 字母的所有字母。

3、[.-.] 表示一个区间;例如[A-Z]匹配所有大写字母,[a-z] 表示所有小写字母。

4、. 匹配除换行符(\n、\r)之外的任何单个字符,相等于 \n\r。

5、[\s\S] 匹配所有;\s 是匹配所有空白符,包括换行,\S 匹配非空白符。

6、\w 匹配字母、数字、下划线;等价于 [A-Za-z0-9_]

7、\d 数字=={0-9}

  • 非打印字符:

8、\cx 匹配由x指明的控制字符;例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。

9、\n 匹配一个换行符。

10、\r 匹配一个回车符。

11、\s 匹配任何空白字符,包括空格、制表符、换页符、换行符等等。

12、\S 匹配任何非空白字符。

13、\t 匹配一个制表符。

14、\v 匹配一个垂直制表符。

15、\b 匹配单词的开始或结束。

16、\B 匹配非单词的开始或结束。

  • 特殊字符:

17、$ 匹配输入字符串的结尾位置。如果设置了RegExp对象的Multiline属性,则$也匹配'\n'或'\r'。

18、^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。注意: 不能将限定符与定位符一起使用。

19、( ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。

20、* 匹配前面的子表达式零次或多次。

21、+ 匹配前面的子表达式一次或多次。

22、? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。 注意: * 和 + 限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个 ? 就可以实现非贪婪或最小匹配。

23、{n} n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。

24、{n,} n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。

25、{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。

26、\ 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。

27、| 指明两项之间的一个选择。

若要匹配这些特殊字符,必须首先对字符转义,即,将反斜杠字符\ 放在它们前面。如\.

3.2 使用案例

python中支持正则表达式的包是re,直接导入即可。

  • findall()函数

在字符串中找到正则表达式所匹配的所有子串,并返回一个字符列表,如果有多个匹配模式,则返回元组列表,如果没有找到匹配的,则返回空列表。

import re

str = "12 23 456"
result1 = re.findall(r'\d+',str)
print(result1) # ['12', '23', '456']

result2 = re.findall(r'(\w+)=(\d+)', 'set width=20 and height=10')
print(result2) # [('width', '20'), ('height', '10')]

剩余的慢慢码!狗命重要!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三叶草~

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值