Python-re 正则 regex 简介
来源:互联网 发布:php微信答题 源码 编辑:程序博客网 时间:2024/06/18 08:30
元字符列表:
. ^ $ * + ? { } [ ] \ | ( )
匹配字符
[abc] 匹配 a b c
[a-c] 匹配a b c
[a-z] 匹配小写
$元字符在[]中,就不是元字符了,比如 [abm$] 就是匹配 a b m $
[^5] 匹配任何5以外的字符 除了5哦
转义 \ : \\ \[
特殊的转义字符:
\d [0-9] 数字
\D [^0-9] 非数字
\s [\t\n\r\f\v] 空白字符
\S [^\t\n\r\f\v] 非空白字符
\w [a-zA-Z0-9]
\W [^a-zA-Z0-9]
[\s,.] 匹配任何字符 或, 或.
重复
* 匹配0或多个 ca*t ct caaaat
+ 匹配1或多个 ca+t cat caaaaat
? 匹配0或1个 ca?t ct cat
[m,n] 匹配至少m次,最多n次 [0,]等同于* [1,]等同于+ [0,1]等同于?
编译正则表达式
>>> import re>>> p = re.compile('abc*',re.IGNORECASE)>>> pre.compile('abc*', re.IGNORECASE)
‘|’ 或规则
注意 :关于 ’|’ 要注意两点:
第一, 它在 ’[‘ ‘]’ 之中不再表示或,而表示他本身的字符。如果要在 ’[‘ ‘]’ 外面表示一个 ’|’ 字符,必须用反斜杠引导,即 ’/|’ ;
第二, 它的有效范围是它两边的整条规则,比如‘ dog|cat’ 匹配的是‘ dog’ 和 ’cat’ ,而不是 ’g’ 和 ’c’ 。如果想限定它的有效范围,必需使用一个无捕获组 ‘(?: )’ 包起来。比如要匹配 ‘ I have a dog’ 或 ’I have a cat’ ,需要写成 r’I have a (?:dog|cat)’ ,而不能写成 r’I have a dog|cat’
>>> s = ‘I have a dog , I have a cat’>>> re.findall( r’I have a (?:dog|cat)’ , s )['I have a dog', 'I have a cat']
‘/A’ 匹配字符串开头
匹配字符串的开头。它和 ’^’ 的区别是, ’/A’ 只匹配整个字符串的开头,即使在 ’M’ 模式下,它也不会匹配其它行的很首。
‘/Z’ 匹配字符串结尾
匹配字符串的结尾。它和 ’$’ 的区别是, ’/Z’ 只匹配整个字符串的结尾,即使在 ’M’ 模式下,它也不会匹配其它各行的行尾。
‘*?’ ‘+?’ ‘??’ 最小匹配
>>> s = '/* part 1 */ code /* part 2 */'>>> re.findall(r'//*.*?/*/', s)['/* part 1 */', '/* part 2 */']
前向界定与后向界定
‘(?<=…)’ 前向界定
括号中 ’…’ 代表你希望匹配的字符串的前面应该出现的字符串。
‘(?=…)’ 后向界定
括号中的 ’…’ 代表你希望匹配的字符串后面应该出现的字符串。
>>> s = '/* comment 1 */ code /* comment 2 */'>>> re.findall( r'(?<=/\*).+?(?=\*/)',s)[' comment 1 ', ' comment 2 ']
- Python-re 正则 regex 简介
- python应用regex正则表达式模块re
- python应用regex正则表达式模块re
- python中正则表达式库re的使用(regex)
- Python正则表达式模块(re)简介
- python regex 正则表达式
- Python 正则表达式 re
- python-re【正则表达式】
- python re 正则表达式
- python 正则(re)
- Python re正则表达式
- python 正则表达式 re
- Python正则表达式(re)
- Python re 正则模块
- re 正则表达式 Python
- python正则表达式(re)
- python re正则表达式
- python 正则RE
- Qcom 8976 单独烧录boot.img后wifi打不开
- openfalcon
- iOS软件编程规范
- LibRTMP源代码分析1:概述
- MySQL常用函数整理 | 黄乔国PHP
- Python-re 正则 regex 简介
- html5自定义属性data详解及使用方法
- Python2/3 list set性能测试
- 使用chilkat解压.Z(unix压缩格式)的压缩文件
- HTML 简介—1
- 机器学习简介
- 什么样的运维工程师薪水较高, 你知道吗?
- 选择排序的Java实现
- 2014.4新版uboot启动流程分析