正则表达式基础知识01
来源:互联网 发布:网络舆情分析师培训 编辑:程序博客网 时间:2024/06/05 15:12
使用元字符
匹配数字:
\d
[0-9]
\D
[^0-9]
匹配字母数字
\w
[0-9a-zA-Z_] 注意:包括下划线
\W
[^0-9a-zA-Z_]
匹配空白字符
\s
任何空白字符[\f\n\r\t\v]
\S
任何非空白字符[^\f\n\r\v]
[\b]
匹配退格符是一个特例
匹配十六进制是使用\x前缀加数字 \x0A 匹配\n
八进制使用\0前缀加数字
例子:
Ø 匹配邮箱:[\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中空格是\n\r,在Linux/Unix中空格是\n),单独匹配各自系统中的空行是:Windows—‘\r\n \r\n’ Linux/Unix—‘\n\n’;因此使用一个模式可以表示为:[\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>]
位置匹配
元字符
含义
\bword\b
匹配单词边界,匹配单词长度为4,仅仅匹配单词word本身
his cap and cape from capsized
例子:
\bcap\b 将匹配cap
\bcap 将匹配以cap开头的任意单词
cap\b 匹配以cap结尾的任意单词
\B\B
不匹配单词边界,
colors and – coded pass-key
例子:
\B-\B将匹配一个前后都不是单词边界的连字符 pass-key
字符串的开头:^
字符串的结尾:$
分行匹配模式:?m (multiline mode)
使用行分隔符后,^除了匹配字符串的开头外,还能够匹配行分隔符(换行符)后面的开始位置,同样$还能够匹配行分隔符后面的结束位置。(?m)必须出现在整个模式的前面
例子:
判断某一文件是不是xml文件:
^\s<\?xml .*\?>
</html>标签后面不应该有其他内容了,进行合法检查:
</[Hh][Tt][Mm][Ll]>\s*$
匹配JavaScript中的所有注释:
(?m)^\s*//.*$
使用子表达式
元字符和字符是正则表达式的基本构件。子表达式是尅嵌套的,
例子
Ø 在html中使用 (None-breaking space)表示非换行型空格,需要匹配一个或多个 ;但是使用模式’ {2,}’是不对的,需要对整体进行匹配因此使用括号“()”将其括起来做一个独立的元素使用,该模式就是子表达式,通常使用小括号括起来。( ){2,}
Ø 匹配IP地址格式:
模式1:\d{1,3}.\d{1,3}.\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})|{1\d{2})|(2[0-4]\d)(25[0-5]))\.){3}((\d{1,2})|(1\d{2})|(2[0-4)|(25[0-5]))
- 正则表达式基础知识01
- 正则表达式基础知识 (转)
- 正则表达式基础知识
- 有关正则表达式基础知识
- 正则表达式基础知识
- 正则表达式基础知识
- 正则表达式基础知识
- 正则表达式基础知识
- 正则表达式基础知识
- 正则表达式基础知识
- c# 正则表达式基础知识
- 正则表达式基础知识
- 正则表达式基础知识
- 正则表达式基础知识
- [转]正则表达式基础知识
- 正则表达式基础知识
- c# 正则表达式基础知识
- 正则表达式基础知识
- JavaScript学习 5.2.5 重排序方法
- Ajax学习(三)——XMLHttpRequest对象的五步使用法
- 第十一周项目四:特殊三位数
- 多线程总结
- TrustRank算法
- 正则表达式基础知识01
- asp.net--JQUERY使用
- mysql 开启慢查询
- 贝叶斯集锦:贝叶斯派和频率派的一个例子
- Ext Spket在Eclipse/MyEclipse下的安装和配置(图文教程)
- Sequential Consistency浅谈
- 大竟-历届卷-三-2-古堡算式
- 正则表达式基础知识02
- 链表基础操作+实例[C语言实现]