python 正则表达式

re.match 在起始位置开始匹配

python 复制代码
# 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配

# re.match() 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话

import re

hh=re.match('我爱你','我爱你-我爱你')  # 在起始位置匹配
print(hh)
hh=re.match('-','我爱你-我爱你')  #不在起始位置匹配,找不到
print(hh)

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

print(matchObj)
print(matchObj.group(1))  #gropu()表示返回匹配的第几个字符串

re.search 扫描整个字符串

python 复制代码
import re

# re.search 扫描整个字符串并返回第一个成功的匹配
# re.match 只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回 None,而 re.search 匹配整个字符串,直到找到一个匹配

hh=re.search('我爱你','我爱你-我爱你')  # 在起始位置匹配
print(hh)
hh=re.search('-','我爱你-我爱你')  #不在起始位置匹配,找不到
print(hh)
print(hh.span())
print(hh.group())

检索并且替换

python 复制代码
# re模块提供了re.sub用于替换字符串中的匹配项

import re

phone = "2004-959-559 # 这是一个电话号码"

# 删除注释
num = re.sub(r'#.*$', "", phone)
print("电话号码 : ", num)

# 移除非数字的内容
num = re.sub(r'\D', "", phone)
print("电话号码 : ", num)

findall查找所有匹配的字符子串

python 复制代码
import re

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


result1 = re.findall(r'\d+', 'runoob 123 google 456')

pattern = re.compile(r'\d+')  # 查找数字
result2 = pattern.findall('runoob 123 google 456')
result3 = pattern.findall('run88oob123google456', 0, 10)

print(result1)
print(result2)
print(result3)
相关推荐
fangzhanpeng1683 天前
快速掌握C#语言基础知识点(1.基础数据类型)
开发语言·c#·1024程序员节
无己心5 天前
面向多平台 AI 搜索引擎的适配层架构设计
前端·人工智能·搜索引擎·ai·1024程序员节
u01030552711 天前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
u01030552712 天前
长株潭智能体赋能腾讯元器链接共享
1024程序员节
云贝贝贝13 天前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
u01030552713 天前
Java图像处理实战指南
人工智能·1024程序员节
u01030552714 天前
Java AWT鼠标事件全解析
人工智能·1024程序员节
u01030552716 天前
Java实用类应用精讲
人工智能·1024程序员节
u01030552716 天前
Java I/O核心操作实战
人工智能·1024程序员节
u01030552717 天前
ArrayList操作详解与实战应用
人工智能·1024程序员节