正则表达式
Posted on
in
python
• 122 words
• 1 minute read
正则表达式简介
正则表达式的定义
表示字符
- 【^ 】表示不是这个范围的只能用一次在开头
- 。匹配任意1个字符(除了\n)
- 【】匹配[ ]中列举的字符 数字范围[0-9]
- \d(digit) 匹配数字,即0-9
- \D 匹配⾮数字,即不是数字
- \s(space) 匹配空白,即空格,tab
- \S 匹配非空白键(\t),\n,\r
- \w –>word 0-9 a-z A-Z 匹配单词字符 ==_==
- \W 匹配非单词字符 不是0-9 a-z A-Z 减号-不能匹配
四、表示数量
-
- 代表0到多个\w代表0个\w或者多个\w没有限制代表连续的
-
- ? 等于1或者0,可以没有也可以有但只能有1次
- {m}—>\d{11}表示11位手机号码 匹配前⼀个字符出现m次
- {m,} m数量以上没有限制
- {m,n} 大于等于m小于等于n
表示边界
- ^ 匹配字符串开头
- [^]这是非其他代表开头
- $ 匹配字符串结尾
- r 在正则表达式的前面加r的区别 \ n是两个分别的字符,不加r\n就是换行
- 加r相当于\ \的效果
- 如果加了r跟$就是拿着后面的数值跟前面的正则进行匹配
- \b 匹配一个单词的边界
- \B 匹配⾮单词边界
匹配分组
- | 匹配左右任意一个表达式
- (ab)将括号中的字符作为一个分组
- 如果有分组从左至右0-n整体是0组
- ==如果打印groups打印出元组==
- \·转义成正常·
- \number 引用分组num匹配到的字符串反向引用
- back引用
- \number指你的组的编号
- ==引用前面的内容引用的是内容不是正则表达式==
- r代表原始字符串
- (?P) 分组起别名
- (?P = name)引用别名为Name分组匹配到的字符串
http://[^:]+?
高级应用
spilt切割
python贪婪和非贪婪
- Python⾥数量词默认是贪婪的(在少数语⾔⾥也可能是默认⾮贪婪),总是 尝试匹配尽可能多的字符;
- ⾮贪婪则相反,总是尝试匹配尽可能少的字符。
- 在"*","?","+","{m,n}“后⾯加上?,使贪婪变成⾮贪婪