标签:
正则表达式 描述 一些规则,而这些规则通过规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式,用来查找和匹配字符串,
hi
这个简单的字符串就是一个正则表达式,精确匹配 hi 这个单词,但我们不仅仅需要找到这个 hi,还要找到一个单独 hi 的单词,或是含有 hi 的字符的一个单词.那么我们就需要 元字符(metacharacter)
元字符是正则表达式规定的特殊代码,使用一个或是一组规定好的字符代替某些字符,这里的规定好的字符类似的有* ,. ,\b...,而某些字符可能时一个特殊字符,像一个空格‘ ‘,或是一段任意字符.先来一个表,再解释
| 常用的元字符代码 | 说明 |
|---|---|
| * | 没有匹配任何字符,代表任意次数出现的模式,用来修饰前导字符 |
| . | 匹配除换行符以外的任意字符 |
| \w | 匹配字母或数字或下划线或汉字 |
| \s | 匹配任意的空白符 |
| \d | 匹配数字 |
| \b | 匹配单词的开始或结束 |
| ^ | 匹配字符串的开始 |
| $ | 匹配字符串的结束 |
. & *是不是对 * 的感觉很诡异,什么任意次数,让我们把它和 .放在一起考虑, . 匹配除换行符以外的任意字符,而将.*则匹配不包含换行符的任意长度的字符串
\b英文中是以空格作为分离单词的标志,而\b则匹配一个这样一个分割单词的位置
\bhi\b.*\bword\b寻找一下在包含 hi 和 word 两个单词的句子,并且还在一行
####\d
匹配数字,没错它只匹配数字
0\d\d-\d\d\d\d\d\d\d\d以0开头,然后是两个数字,然后是一个连字号“-” ,最后是8个数字
\b\w{6}\b匹配刚好6个字符的单词,知道了码,\w匹配的东西字符,数字,和下划线这些都是组成 单词的必要东西,所以一般用它匹配某个单词,而 {8},就是前导字符的修饰,和 * 类似,不过是指明了到底匹配了几次
^ $^ 用来匹配 查找字符串的开头
$ 用来匹配 查找字符串的结尾
这两者和 \b 类似,都用来匹配字符串的某一个位置,而不是实际的一个字符
^\d{5,12}$匹配长度为 5-12 的数字
如果你学过 c或是任何一门语言,他们都有采用特定字符控制输出的功能,而为了输出这些特定字符,就会利用到字符转义, 正则表达式也对 元字符 确定了一个字符转义的规则
加 \,例如 \变为\\,.变为\.,以此类推
这里的重复不是单指一个特定字符的重复,也指不同字符出现的重复
| 代码/语法 | 说明 |
|---|---|
| *? | 重复任意次,但尽可能少重复 |
| +? | 重复1次或更多次,但尽可能少重复 |
| ?? | 重复0次或1次,但尽可能少重复 |
| {n,m}? | 重复n到m次,但尽可能少重复 |
| {n,}? | 重复n次以上,但尽可能少重复 |
### 来个实例:Windows\d+
匹配Windows后面跟1个或更多数字
为了控制和表达更多的字符,引入了字符类,他是一个字符集合,使用[,]将其括起来。
在正则表达式中就充当一个元组
例如 [.?!]匹配标点符号(.或?或!),[aeiou]就匹配任何一个英文元音字母.
标签:
原文地址:http://www.cnblogs.com/dilidingzhi/p/4529817.html