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,如需转载请自行联系原作者



相关文章
|
7天前
|
算法 数据挖掘 Python
Python中的拟合技术:揭示数据背后的模式
Python中的拟合技术:揭示数据背后的模式
16 0
Python中的拟合技术:揭示数据背后的模式
|
7天前
|
Python
Python中正则表达式(re模块)用法详解
Python中正则表达式(re模块)用法详解
14 2
|
10天前
|
IDE JavaScript Java
Processing介绍及几个python模式下的案例
该文章介绍了Processing这一开源编程语言和环境,主要用于视觉艺术和设计领域,并提供了Python模式下的编程案例。
27 5
|
15天前
|
设计模式 安全 API
探索Python中的异步编程模式
【9月更文挑战第19天】在本文中,我们将深入探讨Python的异步编程世界。通过理解其背后的原理和实践应用,你将学会如何编写更加高效、响应更快的程序。文章将引导你从基础概念出发,逐步过渡到高级用法,确保你能够自信地运用异步特性来优化你的代码。
|
26天前
|
Python Windows
Python交互模式
Python交互模式。
11 1
|
6天前
|
索引 Python
30天拿下Python之正则表达式
30天拿下Python之正则表达式
|
7天前
|
数据采集 Python
Python正则表达式提取车牌号
Python正则表达式提取车牌号
11 0
|
8天前
|
数据采集 Python
Python正则表达式提取车牌号
Python正则表达式提取车牌号
|
10天前
|
存储 数据处理 Python
Python中利用正则表达式进行文本处理
【9月更文挑战第24天】本文通过深入浅出的方式,介绍如何在Python中使用正则表达式进行文本处理。我们将从基础语法开始,逐步深入到复杂匹配模式的构建,最后通过实际案例展示正则表达式在文本分析中的高效应用。文章旨在帮助读者掌握正则表达式的使用技巧,提高数据处理效率。
|
2月前
|
Python
Python中利用正则表达式进行文本处理的实用指南
【8月更文挑战第31天】在编程的世界里,文本处理是日常工作的一部分。就像厨师用刀切菜一样,我们用正则表达式来切割、匹配和修改字符串。这篇文章将教你如何像大厨一样使用Python中的正则表达式库,让你的文本处理技能更上一层楼。
下一篇
无影云桌面