纯文本匹配
Hello, my name is Ben. Please visit my website at http://www.forta.com.
这里使用了普通文本正则表达式,他将匹配的原始文本里的Ben,再看一个例子:my, 它在原始文本里面找到了两个匹配结果。
匹配任意字符
.字符(英文句号)可以匹配任意单字符,有些特殊的符号如换行符是无法匹配的。
上述例子中,因为.能够匹配任意单个字符,所以excel.也匹配该文件。
.允许一次使用多个,它可以连续使用,也可以在任意位置出现。
匹配特殊字符
我们使用/来对特殊字的转义,表示后面所跟随的符号是正则表达式里有有特殊含义的。
查看以nx,ex开始的xml文件名
匹配多个字符中的某一个
请匹配nx和ex开头的xml文件,我们可以使用元字符[和]来定义一个字符集合。在使用[和] 定义的字符集和里,出现在[和] 之间的所有字符都是该集合的组成部分,必须匹配其中某个成员(但并非全部)
这种字符集合一般用于不区分大小写的搜索如:
[Rr]eg[Ee]x
The phrase "regular expression" is often abbreviated as RegEx or regex.
利用字符集合区间
如果要匹配na和sa开始的以数字结尾的xls文件如下图
如果要抛开sam.xls,需要用数字集合来解决,如下图
[ns]a[0123456789]\.xls
na1.xls
na2.xls
sa1.xls
ca1.xls
sam.xls
连字符
上述例子中用到了集合[0123456789]表示匹配数字,为了简化字符区间的定义,正则表达式提供了一个特殊的元字符-(连字符)来定义字符区间,它只出现在[和]之间的时候才是元字符,可以将上述的案例改写成
[ns]a[0-9]\.xls
na1.xls
na2.xls
sa1.xls
ca1.xls
sam.xls
字符区间并不仅限于数字,一下这些都是合法的字符区间。
A-Z,匹配从A到Z的所有大写字母
a-z,匹配从a到z的所以小写字母
A-F,匹配从A到F的所有大写字母
A-z,匹配ASCII字符A到ASCII字符z的所有字符
在同一个字符集里可以出现多个字符区间。比如说[A-Za-z0-9]:匹配所有大小写字母和数字
排除
我们通常用元字符:^来排除某个字符集合,如下面例子,我们需要拿ns开始的,没有数字的文章
[ns]a[^0-9]\.xls
注意:^的效果将作用于给定字符集合里面的所有字符或字符区间,而不是仅限于紧跟在^字符后面的哪一个字符或字符区间。
转义
var myArray = new Array();
...
if(myArray[0] == 0){
...
}
匹配myArray[0]
匹配空白字符
[\b] 回退(并删除)一个字符(Backspace键)
\f 换页符
\n 换行符
\r 回车符
\t 制表符(Tab键)
\v 垂直制表符
"101","Ben","Forta"
"102","Jim","James"
"103","AAA","DDD"
"104","BBB","CCC"
匹配特定的字符类型
匹配数字
\d 任何一个数字字符(等价于[0-9])
\D 任何一个非数字字符(等价于[^0-9])
匹配字母数字
\w 任何一个字母数字字符(大小写均可)或下划线字符(等价于[a-zA-Z0-9_])
\W 任何一个非字母数字或非下划线字符(等价于[^a-zA-Z0-9_])
匹配空白字符
\s 任何一个空白字符(等价于[\f\n\r\t\v])
\S 任何一个非空白字符(等价于[^\f\n\r\t\v])
匹配十六进制
\x0A(对于ASCII字符10,也就是换行符)等价于\n
匹配八进制
\011(对于ASCII字符9,也就是制表符)等价于\t
匹配POSIX字符类(JS不支持)
[:alnum:] 任何一个字母或数字(等价于[a-zA-Z0-9])
[:alpha:] 任何一个字母(等价于[a-zA-Z])
[:blank:] 空格或制表符(等价于\t )
[:cntrl:] ASCII控制字符(ASKII 0到31,再加上ASCII127)
[:digit:] 任何一个数字(等价于[0-9])
[:graph:] 和[:print:]一样,但不包括空格
[:lower:] 任何一个小写字母(等价于[a-z])
[:print:] 任何一个可打印字符
[:punct:] 即不属于[:alnum:] ,也不属于[:cntrl:]的任何一个字符
[:space:] 任何一个空白字符,包括空格(等价于[\f\n\r\t\v ])
[:upper:] 任何一个大写字母(等价于[A-Z])
[:xdigit:] 任何一个十六进制数字(等价于[a-fA-F0-9])
使用POSIX字符类,需要以[[开始,以]]结束(两对方括号),如:[[:digit:] ]