本站消息

站长简介/公众号


站长简介:逗比程序员,理工宅男,前每日优鲜python全栈开发工程师,利用周末时间开发出本站,欢迎关注我的微信公众号:程序员总部,程序员的家,探索程序员的人生之路!分享IT最新技术,关注行业最新动向,让你永不落伍。了解同行们的工资,生活工作中的酸甜苦辣,谋求程序员的最终出路!

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2020-10(14)

2020-11(17)

python re模块学习--常用的正则符号

发布于2021-09-22 22:07     阅读(1064)     评论(0)     点赞(27)     收藏(5)



常用的正则符号:

  1. 英文状态的句号点 .
  2. 英文状态下的中括号 []
  3. 英文状态下的圆括号 ()
  4. 英文状态的大括号 {}
  5. 英文状态下的问号 ?
  6. 加号 +
  7. 星号 *
  8. 反斜杠 \

1、英文状态的句号点 . :指代除了换行符\n以外的任意字符。

  1. import re
  2. s = 'Life was like a box of chocolates, you never know what you are gonna get'
  3. f1 = re.findall('chocol.....', s)
  4. f2 = re.findall('chocol\n....', s)
  5. print(f1)
  6. print(f2)
  7. # f1输出结果: ['chocolates,']
  8. # f2输出结果: []

2、英文状态下的中括号 []:中括号内的内容指代所需查找字符集合。

  • [0-9]:表示0123456789
  • [a-z]:表示小写的26个字母
  • [A-Z]:表示大写的26个字母
  1. import re
  2. s = '123456789chocolates123456789'
  3. f = re.findall('o[clz]', s) # [cl]表示'c'或者'l'或者'z'
  4. f1 = re.findall('[0-9]', s)
  5. f2 = re.findall('[a-z]', s)
  6. print(f)
  7. print(f1)
  8. print(f2)
  9. # f输出结果: ['oc', 'ol']
  10. # f1输出结果: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '1', '2', '3', '4', '5', '6', '7', '8', '9']
  11. # f2输出结果: ['c', 'h', 'o', 'c', 'o', 'l', 'a', 't', 'e', 's']

3、英文状态下的圆括号 ():圆括号内的内容就是别截取的内容。

  1. import re
  2. s = 'Life was like a box of chocolates, you never know what you are gonna get'
  3. f = re.findall('choco(lates)', s) # 输出圆括号内的内容
  4. print(f)
  5. # f输出结果: ['lates']

4、英文状态的大括号 {}:大括号内的内容表示匹配前一个字符特定的次数或范围。

  • {m}:匹配前一个字符m次;
  • {m,}:匹配前一个字符至少m次;
  • {,n}:匹配前一个字符至多n次;
  • {m,n}:匹配前一个字符m~n次;
  1. import re
  2. s = '123456789chocolates'
  3. f = re.findall('1\d{3}', s) # \d:代表0~9任一数字,{3}:指匹配大括号前一个字符3
  4. f1 = re.findall('1\d{3,}', s) # {3,}:指匹配大括号前一个字符至少3
  5. f2 = re.findall('1\d{,5}', s) # {3,5}:指匹配大括号前一个字符至多5
  6. f3 = re.findall('1\d{3,5}', s) # {3,5}:指匹配大括号前一个字符至少3次,至多5
  7. print(f)
  8. print(f1)
  9. print(f2)
  10. print(f3)
  11. # f输出结果: ['1234']
  12. # f1输出结果: ['123456789']
  13. # f2输出结果: ['123456']
  14. # f3输出结果: ['123456']

5、英文状态下的问号 ?:问号表示匹配问号前一个字符0次或1次。

  1. import re
  2. s = '123456789chocolates123456789'
  3. f = re.findall('9.?', s)
  4. print(f)
  5. # f输出结果: ['9c', '9']

6、加号 +:加号表示匹配前一个字符1次以上。

  1. import re
  2. s = '123456789chocolates123456789'
  3. f = re.findall('o.+', s)
  4. f1 = re.findall('[0-9]+', s)
  5. f2 = re.findall('[a-z]+', s)
  6. print(f)
  7. print(f1)
  8. print(f2)
  9. # f输出结果: ['ocolates123456789']
  10. # f1输出结果: ['123456789', '123456789']
  11. # f2输出结果: ['chocolates']

7、星号 * :星号表示匹配前一个字符0次以上。

  1. import re
  2. # 找出列表中含有‘chocolates'的所有元素
  3. lis1 = ['123456789chocolates123456789', 'chocolates123','chocolates', '123456789']
  4. lis2 = []
  5. for s in lis1:
  6. lis2.extend(re.findall('[0-9]*chocolates', s))
  7. print(lis2)
  8. # lis2输出结果: ['123456789chocolates', 'chocolates', 'chocolates']

8、反斜杠 \ :是转义符,用于转换特定字符含义的符号。

  • \n:指代换行;
  • \t:指代Tab制表符;
  • \d:指代0~9中的任一数字;
  • \s:指代任意一种空白(如空格、Tab、换行等);
  • \S:指代任何非空白字符;
  • \w:指代字母、数字和下划线中的任意一种;
  • \.:指代句号点.本身;
  1. import re
  2. s = '123456789 chocolates 123456789'
  3. f = re.sub('\s', '', s) # 将s中所有空白替换为空
  4. print(f)
  5. # f输出结果: 123456789chocolates123456789







所属网站分类: 技术文章 > 博客

作者:伤心太平洋

链接:https://www.pythonheidong.com/blog/article/1045596/0ceda1862d851ca32586/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

27 0
收藏该文
已收藏

评论内容:(最多支持255个字符)