正则表达式

正则表达式
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。
在 Python 中,使用 re 模块来处理正则表达式。
re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match() 就返回 None。

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

实例:

#!/usr/bin/python
 
import re
print(re.match('www', 'www.runoob.com').span())  # 在起始位置匹配
print(re.match('com', 'www.runoob.com'))         # 不在起始位置匹配

以上实例运行输出结果为:

(0, 3)
None

实例:

#!/usr/bin/python3
import re
 
line = "Cats are smarter than dogs"
# .* 表示任意匹配除换行符(\n、\r)之外的任何单个或多个字符
# (.*?) 表示"非贪婪"模式,只保存第一个匹配到的子串
matchObj = re.match( r'(.*) are (.*?) .*', line, re.M|re.I)
 
if matchObj:
   print ("matchObj.group() : ", matchObj.group())
   print ("matchObj.group(1) : ", matchObj.group(1))
   print ("matchObj.group(2) : ", matchObj.group(2))
else:
   print ("No match!!")

以上实例执行结果如下:

matchObj.group() :  Cats are smarter than dogs
matchObj.group(1) :  Cats
matchObj.group(2) :  smarter

re.search方法
re.search 扫描整个字符串并返回第一个成功的匹配。

函数语法:

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

实例:

#!/usr/bin/python3
 
import re
 
print(re.search('www', 'www.runoob.com').span())  # 在起始位置匹配
print(re.search('com', 'www.runoob.com').span())         # 不在起始位置匹配

以上实例运行输出结果为:

(0, 3)
(11, 14)

实例:

#!/usr/bin/python3
 
import re
 
line = "Cats are smarter than dogs"
 
searchObj = re.search( r'(.*) are (.*?) .*', line, re.M|re.I)
 
if searchObj:
   print ("searchObj.group() : ", searchObj.group())
   print ("searchObj.group(1) : ", searchObj.group(1))
   print ("searchObj.group(2) : ", searchObj.group(2))
else:
   print ("Nothing found!!")

结果:

searchObj.group() :  Cats are smarter than dogs
searchObj.group(1) :  Cats
searchObj.group(2) :  smarter

re.match 与 re.search的区别
re.match 只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回 None,而 re.search 匹配整个字符串,直到找到一个匹配。
实例:

#!/usr/bin/python3
 
import re
 
line = "Cats are smarter than dogs"
 
matchObj = re.match( r'dogs', line, re.M|re.I)
if matchObj:
   print ("match --> matchObj.group() : ", matchObj.group())
else:
   print ("No match!!")
 
matchObj = re.search( r'dogs', line, re.M|re.I)
if matchObj:
   print ("search --> matchObj.group() : ", matchObj.group())
else:
   print ("No match!!")

结果:

No match!!
search --> matchObj.group() :  dogs

相关推荐

  1. 表达式

    2024-03-30 01:00:02       61 阅读
  2. 表达式

    2024-03-30 01:00:02       72 阅读
  3. 表达式

    2024-03-30 01:00:02       73 阅读
  4. 【Python】表达式

    2024-03-30 01:00:02       48 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-30 01:00:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-30 01:00:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-30 01:00:02       82 阅读
  4. Python语言-面向对象

    2024-03-30 01:00:02       91 阅读

热门阅读

  1. 正则匹配/正则表达式

    2024-03-30 01:00:02       52 阅读
  2. Rust引用借用 vs 原始指针

    2024-03-30 01:00:02       37 阅读
  3. 库函数的模拟实现

    2024-03-30 01:00:02       42 阅读
  4. uniapp踩坑细节

    2024-03-30 01:00:02       45 阅读
  5. Element-UI中el-time-picker时间选择器无法选择

    2024-03-30 01:00:02       37 阅读
  6. js移除子元素

    2024-03-30 01:00:02       37 阅读
  7. 应用Druid解析SQL获取查询表字段、参数信息

    2024-03-30 01:00:02       37 阅读
  8. 5.89 BCC工具之tcptop.py解读

    2024-03-30 01:00:02       34 阅读
  9. PTA 道路管制

    2024-03-30 01:00:02       38 阅读