正则表达式快速入门(二)
2009-06-09 09:02
246 查看
三. 基本用法
1. 基本的名词解释
1) 字符:是指计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等等。
2) 字符串:是指0个或更多个字符的序列。
3) 文本:也就是文字,字符串。
4) 匹配:某个字符串匹配某个正则表达式,通常是指这个字符串里有一部分(或几部分分别)能满足表达式给出的条件。
2. 本节涉及到的语法表
本文出自 “梁卓耀的兵禅道――用..” 博客,请务必保留此出处http://liangzhuoyao.blog.51cto.com/808081/164132
1. 基本的名词解释
1) 字符:是指计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等等。
2) 字符串:是指0个或更多个字符的序列。
3) 文本:也就是文字,字符串。
4) 匹配:某个字符串匹配某个正则表达式,通常是指这个字符串里有一部分(或几部分分别)能满足表达式给出的条件。
2. 本节涉及到的语法表
[align=center]代码[/align] | [align=center]说明[/align] |
. | 匹配除换行符以外包括空格和Tab键的任意字符 |
* | 重复前一个字符或一组表达式零次或更多次 |
? | 重复前一个字符或一组表达式零次或一次 |
+ | 重复前一个字符或一组表达式一次或更多次; |
- | 匹配除了换行符以外的任意字符 |
\ | 转义符,将特殊字符转化为普通字符,取消后面跟着的字符的特殊意义;比如如果你想查找“.”,或者“*”,就需要用“\”。因此,你应该使用“\.”和“\*”。当然,要查找\本身,你也得用“\\.” |
| | 或的表达式,表示分支条件,匹配代码左侧的表达式或匹配代码右侧的表达式两者之一;注意:当左侧的表达式匹配条件相符的话,不再检测右侧的表达式 |
^ | 匹配字符串的开始的一个位置,同时也表示否的表达式,表示不想被匹配的字符,一般和[]一起使用。也匹配输入字符串的开始 |
$ | 匹配字符串的结束的一个位置 |
() | 匹配一组表达式,该表达式可以由其它特殊字符组成 |
[] | 匹配包含在其中的单个字符 |
\w | 匹配任意一个字母或数字或下划线或汉字等 |
\W | 匹配任意不是字母,数字,下划线,汉字的字符 |
\s | 匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等 |
\S | 匹配任意不是空白符的字符,等价于[^\f\n\r\t\v] |
\d | 匹配任意一位数字,等价于[0~9] |
\D | 匹配任意非数字的字符,等价于[^0~9] |
\b | 匹配一个单词的开始或结束,也就是指单词和空格间的位置 |
\B | 匹配不是单词开头或结束的位置 |
\f | 匹配一个换页符 |
\n | 匹配一个换行符 |
\r | 匹配一个回车符 |
\t | 匹配一个制表符 |
\v | 匹配一个垂直制表符 |
{n} | 重复n次,只对邻近的字符或一组表达式起作用 |
{n,m} | 重复n到m次,只对邻近的字符或一组表达式起作用 |
(exp) | 匹配exp,并捕获文本到自动命名的组里 |
(?<name>exp) | 匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp) |
(?:exp) | 匹配exp,不捕获匹配的文本,也不给此分组分配组号 |
(?=exp) | 匹配exp前面的位置 |
(?<=exp) | 匹配exp后面的位置 |
(?!exp) | 零宽度负预测先行断言,断言此位置的后面不能匹配表达式exp。 |
(?<!exp) | 匹配前面不是exp的位置 |
*? | 重复任意次,但尽可能少重复 |
+? | 重复1次或更多次,但尽可能少重复 |
?? | 重复0次或1次,但尽可能少重复 |
{n,m}? | 重复n到m次,但尽可能少重复 |
{n,}? | 重复n次以上,但尽可能少重复 |