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



相关文章
|
2月前
|
开发者 Python
Python中的match-case语句:更优雅的模式匹配
Python中的match-case语句:更优雅的模式匹配
|
7月前
|
数据采集 监控 数据安全/隐私保护
Python正则表达式:用"模式密码"解锁复杂字符串
正则表达式是处理字符串的强大工具,本文以Python的`re`模块为核心,详细解析其原理与应用。从基础语法如字符类、量词到进阶技巧如贪婪匹配与预定义字符集,结合日志分析、数据清洗及网络爬虫等实战场景,展示正则表达式的强大功能。同时探讨性能优化策略(如预编译)和常见错误解决方案,帮助开发者高效掌握这一“瑞士军刀”。最后提醒,合理使用正则表达式,避免过度复杂化,追求简洁优雅的代码风格。
174 0
|
11月前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品消费模式分析的深度学习模型
使用Python实现智能食品消费模式分析的深度学习模型
295 70
|
8月前
|
数据库 Python
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
|
8月前
|
存储 安全 搜索推荐
课时15:Python的交互模式
今天给大家带来的分享是 Python 的交互模式以及计算机对 Python 的开发,分为以下三个部分。 1.Python的介绍 2.Python的结构 3.保存代码
138 2
|
11月前
|
机器学习/深度学习 数据采集 数据挖掘
使用Python实现智能食品消费模式预测的深度学习模型
使用Python实现智能食品消费模式预测的深度学习模型
207 2
|
12月前
|
Python
在Python中,可以使用内置的`re`模块来处理正则表达式
在Python中,可以使用内置的`re`模块来处理正则表达式
261 5
|
12月前
|
数据采集 Web App开发 iOS开发
如何使用 Python 语言的正则表达式进行网页数据的爬取?
使用 Python 进行网页数据爬取的步骤包括:1. 安装必要库(requests、re、bs4);2. 发送 HTTP 请求获取网页内容;3. 使用正则表达式提取数据;4. 数据清洗和处理;5. 循环遍历多个页面。通过这些步骤,可以高效地从网页中提取所需信息。
|
数据库 Python
Python网络数据抓取(8):正则表达式
Python网络数据抓取(8):正则表达式
|
自然语言处理 JavaScript 前端开发
Python高级语法与正则表达式(二)
正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。

推荐镜像

更多