标签:lin 识别 入门 非贪婪 空格 16px 获取 记录 1年
特殊字符 | 表示的意思 | 小例子 |
^ | 以……开头 | ”^b“:以b开头 |
* | 前面的字符出现次数大于等于0(出现任意次数) | ”b*”:b出现任意次 |
. | 代表任意字符 | “^b.*”:以b开头的任意字符串(b开头,后面出现任意字符次数不限制) |
& | 以$符号前的结尾 | “b$”:以b结尾 |
? | 非贪婪匹配 | 默认贪婪匹配是从右向左,非贪婪匹配是从左向右(符合阅读习惯) |
+ | 前面的字符出现次数大于等于1 | 相较于“*”至少要出现一次 |
{2} | 前面字符出现2次 | “b{4}”:b出现四次(识别出bbbb) |
{2,} | 前面字符出现至少2次 | “b{4,}”:b出现至少四次(识别出bbbb,bbbbbbbbbbbbbbbbbbb等) |
{2,5} | 前面字符出现可以是2,3,4,5次 | “b{2,4}”:b出现2,3,4次(识别出bb、bbb、bbbb这三种) |
| | 或关系,可以匹配多种 | ”b|c|d“:可以是b,c,d中的一种 |
[] | 可以匹配[]中的任何一个 |
“[2345]或者[0-9]"几种用法 “1[48357][0-9]{9}”:提取手机号 |
\s | 空格 | |
\S | 非空格 | |
\w | a~z,A~Z,0~9,_中的一个 | |
\W | 除了\w外的字符 | |
[\u4E00-\u9FA5] | 连续的汉字 | |
\d | 数字 | “\d{4}”:出现四个数字,比如2001 |
import re line = "xxx出生于2001年6月1日" line = "xxx出生于2001/6/1" line = "xxx出生于2001-6-1" line = "xxx出生于2001-06-01" line = "xxx出生于2001-06" regex_str = ".*出生于(\d{4}[年/-]\d{1,2}([月/-]\d{1,2}|[月/-]$|&))" matchs = re.match(regex_str,line) print(matchs.group(1))
不同的时间格式都可以匹配出来。
标签:lin 识别 入门 非贪婪 空格 16px 获取 记录 1年
原文地址:https://www.cnblogs.com/longbigbeard/p/9542739.html