经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 其他 » 正则表达式 » 查看文章
python正则表达式之re.match()与re.search()的用法及区别
来源:jb51  时间:2022/8/15 16:59:28  对本文有异议

1、re.match()的用法

re.match()方法是从起始位置开始匹配一个模式,匹配成功返回一个对象,未匹配成功返回None。

语法:

  1. re.match(pattern, string, flags=0)

参数说明:

  • pattern:匹配的正则表达式;
  • string:要匹配的字符串;
  • flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等;

示例如下:

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. import re
  4. if __name__ == '__main__':
  5. # 匹配模式
  6. test_pattern = r"\d{2}年"
  7. # 待匹配的字符串
  8. test = "18年2019年2020年"
  9. print(re.match(test_pattern, test).group())

输出:

18年
Process finished with exit code 0

若将匹配模式改成:

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. import re
  4. if __name__ == '__main__':
  5. # 匹配模式
  6. test_pattern = r"\d{4}年"
  7. # 待匹配的字符串
  8. test = "18年2019年2020年"
  9. print(re.match(test_pattern, test))

则返回结果为:

None
Process finished with exit code 0

这是因为re.match()仅从头开始匹配,由于起始位置处未找到符合匹配模式的内容,返回None。

2、re.search()的用法

re.search()方法是扫描整个字符串内进行模式匹配,只要找到第一个匹配就返回,如果字符串没有匹配,则返回None。

语法:

  1. re.search(pattern, string, flags=0)

参数说明:

  • pattern:匹配的正则表达式;
  • string:要匹配的字符串;
  • flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等;

示例如下:

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. import re
  4. if __name__ == '__main__':
  5. # 匹配模式
  6. test_pattern = r"\d{4}年"
  7. # 待匹配的字符串
  8. test = "18年2019年2020年"
  9. print(re.search(test_pattern, test).group())

输出:

2019年
Process finished with exit code 0

这是因为re.search()扫描整个字符串,找到符合匹配模式的第一个匹配就返回了。

3、re.match()与re.search()的区别

re.match()方法要求必须从字符串的开头进行匹配,如果字符串开头不符合模式规则,整个匹配就失败了,函数返回None;

re.search()并不要求必须从字符串的开头进行匹配,而是扫描整个字符串,直到找到第一个匹配。

到此这篇关于python正则表达式之re.match()与re.search()的用法及区别的文章就介绍到这了,更多相关python re.match()与re.search()内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持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号