| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> 正则表达式匹配的理解 -> 正文阅读 |
|
[Python知识库]正则表达式匹配的理解 |
正则表达式的三步走: Python字符串的转义?? --》?? 正则表达式转义? --》 内容与转义后原始字符串内容进行匹配
1.'\\t' python字符串转义为正则表达式? \t???? 2.正则表达式解释 \t 为一个制表符 3.python字符串内容'\t' 转义为原始字符串? 即一个制表符 4.正则表达式 与 原始(正常)字符串匹配? ?? 明确两个概念 python字符串 和 原始的字符串 原始字符串? 我就想表达一个反斜杠后面加英文 即 \abc python字符串? 想表示\原始的意义需要加一个转义字符 即变成'\\abc' 正则表达式 与 原始字符串 进行匹配 例:
????????1.pyhon字符串'\\\\abc' --》 正则表达式\\abc? 匹配字符串? \abc ????????2.python字符串'\\abc' --》 原始字符串 \abc ????????3.匹配字符串? 与 原始字符串 一致因而能够匹配上 特殊符号的匹配 例:
为什么会有这种情况? 1号工作流程 ?? 1.python字符串'\\~'? --》 正则表达式\~? 匹配字符串~??? 从这里我们可以看出正则表达式将? \特殊字符? 都直接解释为该特殊字符? 正则表达式 \#? 匹配字符串? #??? 正则表达式 \=? 匹配字符串 = ? 2.python字符串'\~' --》 原始字符串 \~? 理解为什么原始字符串是\~ 而不是 ~ 因为从span()方法可以看出是从母串的第二个字符匹配上的,如果python字符串'\~' 转换为原始字符串为~,那返回值应该是(0,1),从而也知道python字符串并不会转义~,但正则表达式会 ? 3.匹配字符串? 与 原始字符串? 去进行匹配 2号 理解为什么group()返回的python字符串是'\\~' 因为若原始字符串是 \~? 所对应的python字符串就应该为 '\\~' 写为'\~'? 不会报错因为python字符串并不会转义~,它知道你想表达的原始字符串为\~,为使得正确表达在底层实际上帮你补了一个'\',因而'\~' 实际上其实是'\\~' 这样整个工作流程也就好理解了 1.python字符串'\\\\~' --》 正则表达式 \\~? 匹配字符串 \~ 2.python字符串'\~' --》? 原始字符串\~ 3.进行匹配 3号工作流程 1.python字符串'\\\\\\~' --》 正则表达式 \\\~ 匹配字符串 \~? (注:\\匹配\? \~匹配~) 2.python字符串'\\~' --》? 原始字符串\~ 3.进行匹配 4号工作流程 1.python字符串'\\\\~' --》 正则表达式 \\~? 匹配字符串 \~ 2.python字符串'\\~' --》? 原始字符串\~ 3.进行匹配 5号工作流程 1.python字符串'\\\\\\\\~' --》 正则表达式 \\\\~? 匹配字符串 \\~ 2.python字符串'\\\\~' --》? 原始字符串\\~ 3.进行匹配 转义字符的匹配 例:
为什么1和2结果一样,3却报错 模拟1.流程: 1.python字符串'\n' --》正则表达式 一个换行符? 匹配一个换行符?? 怎么理解:假设python字符串为'a'? --》正则表达式? a? (即一个固定a字符,这里a和换行符一个概念,都是固定字符)? 因此正则表达式 a 匹配字符串 a????? 同理正则表达式 换行符? 匹配字符串换行符 2.python字符串'\n' --》 原始字符串 一个换行符 3.进行匹配 模拟2.流程: 1.python字符串'\\n' --》正则表达式 \n? 匹配字符串 一个换行符 2.python字符串'\n' --》 原始字符串 一个换行符 3.进行匹配 模拟3.流程: 1.python字符串'\\n' --》正则表达式 \n? 匹配字符串 一个换行符 2.python字符串'\\n' --》 原始字符串 \n 3.换行符 与 \n 不匹配? 换行符等价于字符a是一个字符,而原始字符串\n 是两个字符 总结: 说了这么多,总算把这几个概念理清楚了。 在实际运用中,还是直接 r'' 来就好了,这样就没有python字符串转义这一中间过程了 例:想匹配字符串 \sub
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 18:44:58- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |