正则表达式基础知识01
使用元字符匹配数字:
匹配字母数字
匹配空白字符
匹配十六进制是使用x前缀加数字 x0A 匹配n 八进制使用 前缀加数字
例子: ? 匹配邮箱:[w.]+@[w.]+.w+ 但不是最好的,不完整 ? 邮箱第一字母必须是字母或下划线,因此符合要求的的模式是: w*[w.]+@[w.]+.w+ Note:当在[]中使用.、+、*等元字符时会自动将其解释为普通字符,因此[w.]和[w.]是一样的。 重复匹配匹配一个或多个 + 匹配零个或多个 * 匹配零个或一个 ? 匹配重复次数{n}、{n,m}、{n,}至少n次、{,m}最多m次【包含n,m】 例子: ? 匹配一个网页地址: https?://[w./]+或http[s]?://[w./]+ ? 匹配空行(在windows中空格是nr,在Linux/Unix中空格是n),单独匹配各自系统中的空行是:Windows—‘rn rn’ Linux/Unix—‘nn’;因此使用一个模式可以表示为: [r]?n[r]?n ? 检查日期格式是否正确(对日期值的检查应该在此之前确定): d{1,2}[-/]d{1,2}[-/]d{2,4} 防止过度匹配:+、*都是贪婪性,会按照最多的去匹配;要使用懒惰型版本的元字符只需要给贪婪型元字符加上?后缀即可。 +?、*?、{n,}?是各自贪婪型元字符对应的懒惰型元字符版本 ? 将HTML中的<B></B>标签中的内容匹配出来 <B>AK</B> and <B>HI</B> 模式1:[<B/>].*[</B>] 过度匹配 模式2:[<B/>].*?[</B>] 位置匹配
使用子表达式元字符和字符是正则表达式的基本构件。子表达式是尅嵌套的, 例子 ? 在html中使用 (None-breaking space)表示非换行型空格,需要匹配一个或多个 ;但是使用模式’ {2,}’是不对的,需要对整体进行匹配因此使用括号“()”将其括起来做一个独立的元素使用,该模式就是子表达式,通常使用小括号括起来。( ){2,} ? 匹配IP地址格式: 模式1:d{1,3}.d{1,3} 模式2:(d{1,3}.){3}d{1,3} ? 把用户记录中的年份数字打印出来 日志格式: ID:042 SEX:M DOB:1996-08-17 Status:Active 匹配模式:(19|20)d{2} ? 使用子表达式的嵌套,匹配IP地址格式且匹配合法的IP第地址,在构造正则表达式一定要清楚相匹配什么,不像匹配什么: 匹配IP地址:任何一个1位或2位数字、任何一个以1开头的3位数字、任何一个以2开头、第二位数字在0~4的3位数字、任何一个以25开头,第3位数字在0~5之间的3为数字 模式:(((d{1,2})|{1d{2})|(2[0-4]d)(25[0-5])).){3}((d{1,2})|(1d{2})|(2[0-4)|(25[0-5])) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 【全栈React】第10天: 交互性
- 官方文档 恢复备份指南七 Using Flashback Database and Re
- 如何打包Activiti的流程资源文件(bpmn20.xml、form、png)
- Oracle中的数值处理相关函数介绍
- ruby-on-rails-4 – database_cleaner正在擦除我的开发数据
- swift – String.init(contentsOfFile :)替代Linux?
- Searchable Select 加上远程调用数据功能
- sqlite foreign key mismatch 外键配置错误
- C# 利用代理爬虫网页的实现方法
- c# – GZipStream没有读取整个文件