python:正则表达式

范例一:

复制代码
import re

content = 'Hello 1234567 World_This is a Regex Demo'
result=re.match('^Hello\s(\d+)\sWorld',content)
print(result)
print(result.group())
print(result.group(1))
print(result.span())

关键知识点:

  1. re.match(pattern, string) :从字符串开头 开始匹配正则表达式,若开头不匹配则返回 None,匹配成功则返回 Match 对象。
  2. 正则表达式符号
    • ^:匹配字符串开头(re.match 本身已从开头匹配,此处可省略,但写出来更明确)。
    • \s:匹配任意空白字符(空格、制表符等)。
    • \d+:匹配 1 个或多个数字。
    • ():分组匹配,将括号内的内容作为一个分组,可通过 group(n) 提取。
  3. Match 对象的方法
    • group():返回整个匹配的字符串(等同于 group(0))。
    • group(1):返回第一个分组匹配的内容(若有多个分组,可依次用 group(2)group(3) 提取)。
    • span():返回匹配的起始和结束索引(元组形式)。

范例二:

复制代码
import re

content = 'Hello 1234567 World_This is a Regex Demo'
result=re.match('^Hello.*Demo$',content)
print(result)
print(result.group())
print(result.span())

关键知识点:

1. 正则表达式模式

^Hello.*Demo$ 的含义:

  • ^:匹配字符串的开头
  • Hello:匹配字面量字符串 "Hello"
  • .** 表示匹配前面的字符(. 代表任意字符,除换行符)0 次或多次
  • Demo$$ 匹配字符串的结尾,这里匹配字面量 "Demo"

范例三:

复制代码
import re

s = "Python is good, Python is powerful"
# 正则:匹配以Python开头,以is结尾的内容(非贪婪匹配)
pattern_lazy = r"Python.*?is"
result_lazy = re.search(pattern_lazy, s)
print("非贪婪匹配结果:", result_lazy.group())

print("非贪婪匹配结果:", result_lazy)
复制代码
import re

s = "Python insert is good, Python is powerful"
# 正则:匹配以Python开头,以is结尾的内容(非贪婪匹配)
pattern_lazy = r"Python.*?is"
result_lazy = re.search(pattern_lazy, s)
print("非贪婪匹配结果:", result_lazy.group())

print("非贪婪匹配结果:", result_lazy)

在python 和is 之间增加了insert,结果如下:

复制代码
import re

s = "Python insert is good, Python is powerful"
# 正则:匹配以Python开头,以is结尾的内容(非贪婪匹配)
pattern_lazy = r"Python.*is"
result_lazy = re.search(pattern_lazy, s)
print("非贪婪匹配结果:", result_lazy.group())

print("非贪婪匹配结果:", result_lazy)

将.*?更改为.*之后,运行结果如下:

.*正则表达式将所有可能的符合正则要求的范围全部包含了进来 !

相关推荐
郑洁文12 分钟前
可视化Web渗透分析工具的设计与实现
前端
星恒随风15 分钟前
Python 基础语法详解(一):从表达式、变量到数据类型
开发语言·笔记·python·学习
888CC++18 分钟前
java 并发编程
java·开发语言·python
Dxy123931021622 分钟前
python缩放图片如何保证图片质量
python
罗超驿31 分钟前
18.Web API 实战:元素与表单属性的获取和修改
开发语言·前端·javascript
边界条件╝31 分钟前
微前端进阶(四)
前端·状态模式
无风听海36 分钟前
JSON Web Token(JWT)完全指南
java·前端·json
ZHW_AI课题组1 小时前
腾讯云调用IP定位
人工智能·python·机器学习
IT_陈寒1 小时前
Python闭包里藏的这个坑,差点让我加班到凌晨
前端·人工智能·后端
IT_陈寒1 小时前
Java注解空指针?这个坑我踩得莫名其妙
前端·人工智能·后端