python正则表达式re匹配模式和特殊字符集

简介:

python正则表达式re匹配模式和特殊字符

  正则表达式是可以匹配文本片段的模式,了解正则表达式的匹配模式和特殊字符集,你就可以搜索文本中的模式,也可以进行字符替换和文本分段。

1.匹配模式

语法 意义
说明
"." 任意字符
"^" 字符串开始 '^abc'匹配'abcabc'而不匹配'111abc222'
"$" 字符串结尾
与上同理
"*"
0 个或多个字符(贪婪匹配) <*>匹配<html>abc</html>
"+" 1 个或多个字符(贪婪匹配 与上同理
"?" 0 个或多个字符(贪婪匹配
与上同理
*?,+?,?? 以上三个取第一个匹配结果(非贪婪匹配
<*>匹配<html>
{m,n} 对于前一个字符重复m到n次,{m}亦可 a{8}匹配8个a、a{4,6}匹配4到6个a
{m,n}? 对于前一个字符重复m到n次,并取尽可能少
‘aaaaaa'中a{4,6}只会匹配4个
"\\"
特殊字符转义或者特殊序列

[]
表示一个字符集
[0-9]、[a-z]、[A-Z]、[^0]
"|"
A|B,或运算
(...)
匹配括号中任意表达式

(?#...)
注释,可忽略
(?=...)
Matches if ... matches next, but doesn't consume the string.
'(?=world)'  在helloworld中匹配hello
(?!...)
Matches if ... doesn't match next.
'(?!=world)'  若hello后面不为tworld,匹配hello
(?<=...) 

Matches if preceded by ... (must be fixed length).
'(?<=hello)world'  在helloworld中匹配world
(?<!...)
Matches if not preceded by ... (must be fixed length).
'(?<!hello)world'  在helloworld中不匹配world

2.特殊字符集

\A
只在字符串开始进行匹配
\Z 只在字符串结尾进行匹配
\b
匹配位于开始或结尾的空字符串
\B 匹配不位于开始或结尾的空字符串
\d
相当于[0-9]
\D
相当于[^0-9]
\s
匹配任意空白字符:[\t\n\r\r\v]
\S
匹配任意非空白字符:[^\t\n\r\r\v]
\w
匹配任意数字和字母:[a-zA-Z0-9]
\W
匹配任意非数字和字母:[^a-zA-Z0-9]

3.VERBOSE

  该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。当该标志被指定时,在 re 字符串中的空白符被忽略,除非该空白符在字符类中或在反斜杠之后;这可以让你更清晰地组织和缩进 re。它也可以允许你将注释写入 re,这些注释会被引擎忽略;注释用 "#"号 来标识,不过该符号不能在字符串或反斜杠之后。

    未使用VERBOSE:

    emphasis_pattern=r'\*([^\*]+)\*'

    emphasis_pattern=re.compile(r'\*([^\*]+)\*')

    使用VERBOSE:(详情参考python基础教程(第二版)P197)

    >>> emphasis_pattern=re.compile(r'''
... \*          #Beginning emphasis tag -- an asterisk
... (           #Begin group for capturing phrase
... [^\*]+      #Capture anything except asterisks
... )           #End group
... \*          #Ending emphasis tag
... ''',re.VERBOSE)








      本文转自独弹古调  51CTO博客,原文链接:http://blog.51cto.com/hunkz/1755116,如需转载请自行联系原作者



相关文章
|
1月前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品消费模式分析的深度学习模型
使用Python实现智能食品消费模式分析的深度学习模型
131 70
|
2月前
|
设计模式 开发者 Python
Python编程中的设计模式:工厂方法模式###
本文深入浅出地探讨了Python编程中的一种重要设计模式——工厂方法模式。通过具体案例和代码示例,我们将了解工厂方法模式的定义、应用场景、实现步骤以及其优势与潜在缺点。无论你是Python新手还是有经验的开发者,都能从本文中获得关于如何在实际项目中有效应用工厂方法模式的启发。 ###
|
1月前
|
机器学习/深度学习 数据采集 数据挖掘
使用Python实现智能食品消费模式预测的深度学习模型
使用Python实现智能食品消费模式预测的深度学习模型
60 2
|
2月前
|
Python
在Python中,可以使用内置的`re`模块来处理正则表达式
在Python中,可以使用内置的`re`模块来处理正则表达式
78 5
|
3月前
|
数据可视化 算法 JavaScript
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
本文探讨了如何利用图论分析时间序列数据的平稳性和连通性。通过将时间序列数据转换为图结构,计算片段间的相似性,并构建连通图,可以揭示数据中的隐藏模式。文章介绍了平稳性的概念,提出了基于图的平稳性度量,并展示了图分区在可视化平稳性中的应用。此外,还模拟了不同平稳性和非平稳性程度的信号,分析了图度量的变化,为时间序列数据分析提供了新视角。
96 0
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
|
4月前
|
算法 数据挖掘 Python
Python中的拟合技术:揭示数据背后的模式
Python中的拟合技术:揭示数据背后的模式
63 0
Python中的拟合技术:揭示数据背后的模式
|
3月前
|
Python
Python 中常用的内置模块之`re`模块
【10月更文挑战第11天】 `re` 模块是 Python 内置的正则表达式处理工具,支持模式匹配、搜索、替换等功能。通过 `search`、`match`、`findall` 和 `sub` 等函数,结合正则表达式的元字符、分组、贪婪模式等特性,可高效完成文本处理任务。示例代码展示了基本用法,帮助快速上手。
52 1
|
2月前
|
Python
探索Python中的异步编程模式
【10月更文挑战第29天】在编程世界中,时间就是效率。Python的异步编程模式,就像是给程序装上了翅膀,让任务并行处理不再是梦想。本文将带你了解如何在Python中实现异步编程,解锁高效代码的秘密。
33 0
|
4月前
|
IDE JavaScript Java
Processing介绍及几个python模式下的案例
该文章介绍了Processing这一开源编程语言和环境,主要用于视觉艺术和设计领域,并提供了Python模式下的编程案例。
103 5
|
4月前
|
Python
Python中正则表达式(re模块)用法详解
Python中正则表达式(re模块)用法详解
81 2