经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 其他 » 正则表达式 » 查看文章
python中使用正则表达式的方法详解
来源:jb51  时间:2022/3/29 16:18:55  对本文有异议

在python中使用正则表达式,主要通过下面的几个方法

search(pattern, string, flags=0)

  • 扫描整个string并返回匹配pattern的结果(None或对象)
  • 有匹配的字符串的话返回一个对象(包含符合匹配条件的第一个字符串),否则返回None
  1. import re
  2. #导入正则库
  3.  
  4. content = 'Hello 1234567 Hello 666'
  5. #要匹配的文本
  6. res = 'Hello\s'
  7. #正则字符串
  8.  
  9. result = re.search(res, content)
  10. if result is not None:
  11. print(result.group())
  12. #输出匹配得到的字符串 'hello'(返回的得是第一个'hello')
  13. print(result.span())
  14. #输出输出匹配的范围(匹配到的字符串在原字符串中的位置的范围)
  15.  
  16. res1 = 'Hello\s(\d)(\d+)'
  17. result = re.search(res1, content)
  18. print(result.group(1))
  19. #group(1)表示匹配到的第一个组(即正则字符串中的第一个括号)的内容
  20. print(result.group(2))

findall(pattern, string, flags=0)

  • 扫描整个context并返回匹配res的结果(None或列表)
  • 有匹配的字符串的话返回一个列表(符合匹配条件的每个子字符串作为它的一个元素),否则返回None
  1. import re
  2.  
  3. res = 'Hello\s'
  4. results = re.findall(res, content)
  5. if results is not None:
  6. print(results)
  7. #输出: ['hello','hello']
  8.  
  9. res1 = 'Hello\s(\d)(\d+)'
  10. results = re.findall(res1, content)
  11. if result is not None:
  12. print(results)
  13. # 当正则字符串中出现括号时,所得到列表的每个元素是元组
  14. # 每个元组的元素都是依次匹配到的括号内的表达式的结果
  15. #输出: [('1','1234567'),('6','666')]

sub(pattern, repl, string, count=0, flags=0)

  • 可以来修改文本
  • 用将用pattern匹配string所得的字符串替换成repl
  1. import re
  2.  
  3. content = '54aK54yr5oiR54ix5L2g'
  4. res = '\d+'
  5. content = re.sub(res, '', content)
  6. print(content)

compile(pattern, flags=0)

将正则表达式res编译成一个正则对象并返回,以便复用

  1. import re
  2.  
  3. content1 = '2019-12-15 12:00'
  4. content2 = '2019-12-17 12:55'
  5. content3 = '2019-12-22 13:21'
  6. pattern = re.compile('\d{2}:\d{2}')
  7. result1 = re.sub(pattern, '', content1)
  8. result2 = re.sub(pattern, '', content2)
  9. result3 = re.sub(pattern, '', content3)
  10. print(result1, result2, result3)

flags的一些常用值

  • re.I 使匹配对大小写不敏感
  • re.S 使.匹配包括换行符在内的所有字符
  1. import re
  2. re.compile(res, re.I)
  3. #如果res可以匹配大写字母,那它也可以匹配相应的小写字母,反之也可
  4.  
  5. re.compile(res,re.S)
  6. #使res中的'.'字符可以匹配包括换行符在内的所有字符

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注w3xue的更多内容!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号