正则表达式的基础和语法

来源:互联网 发布:淘宝开店交税吗 编辑:程序博客网 时间:2024/05/18 21:43
正则表达式

一个正则表达式是由普通字符(如a-z)以及特殊字符(称为元字符)组成的模式字符串。该模式字符串描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模版,将某个字符模式与搜索的字符串进行匹配。

表示方式/正则表达式/

1.字符类:(一个字符类每次只能匹配一个满足要求的字符)


[....]匹配方括号中字符序列的任意一个字符,其中可以使用连字符“-”匹配指定范围内的任意字符      

 /[012]/可以与0A1B2C中的字符0或1或2匹配                 /[0-5]/可以与a302gsfd91sa4sd中的0至5之间任意数字字符匹配



[^....] 匹配方括号中字符序列未包含的/[^012]/可以与0A1B2C中的除字符0或1或2之外的任意字符匹配
任意字符,其中可以使用连字符/[a-z]/可以与a302gsfd91sa4sd中不在小写字母a-z之间的任意字符匹配
"-"匹配不再指定范围内的任意
字符


. 匹配除了换行和回车之外的任意
字符,相当于[^\r\n]


\d 匹配任意一个数字字符,相当于\/d\可以匹配wy3k中的3
[0-9]\/d/d\可以匹配wy34k中的34


\D 匹配任意非数字字符,相当于         \/D\可以匹配wy3k中的w或y或k
[^0-9]


\s 匹配任意空白字符,如空格,制  /\s\d/可以匹配my age is 20中的 2,注意2前面的空格
表符,换行符等,相当于
[\t\n\x0b\f\r]


\S 匹配任意非空白符,相当于           /\S/可以匹配a b中的a或b
[^\t\n\x0b\f\r]


\w 匹配任意英文字母,数字字符以  /\w/可以匹配shjhjhjdd323d_df%#中的字母,数字,下划线
及下划线,相当于[a-zA-Z0-9_]


2.量词:


? 匹配前一项0次或1次                    /JS?/可以匹配JScripter中的JS或JavaScript中的J


+ 匹配前一项的一次或多次,单至   /JS?/可以匹配JS,也可以匹配JSSSS,也就是J后面一定要有一个及以上的S
少出现一次


* 匹配前一项0次或多次,也就是            /bo*/可以匹配b,bo,boo,booo
任意次


{n} 匹配前一项恰好n次,其中n为非     /o{2}/可以匹配book中的oo,也可以匹配booook中任意两个连续的o
负整数


{n,} 匹配前一次至少n次                    /0{2}/不匹配bok中的o,因为至少要匹配两个连续的o。所以可以匹配book和booook中的所有o


{n,m} 匹配前一项至少n次,但不能超              /o{2,5}/可以匹配book中的两个o,也可以匹配boooook中的5个连续的o
过m次,其中n,m为非负整数,
且n<=m
注意:在使用{n,m}时,数字与逗号之间不能有空格符


3.指定匹配位置


^ 匹配字符串的行开头。^必须               /^g/匹配good中的g,但不匹配bag中的g
出现在指定字符串的最前面才
起作用


$ 匹配字符串的行结尾。$必须               /g$/匹配bag中的g,但不匹配good中的g
出现在指定字符串的最后面才
起作用


\b 匹配单词的边界                      /e\b/匹配"I love seek"中love的e,不匹配seek中的e


\B 匹配单词的非边界/                     e\b/匹配"I love seek"中seek的e,不匹配love 中的e


4.选择匹配符
正则表达式的选择匹配福只有一个"|",使用"|"可以匹配指定的多个选项中的任意一项。例如/World|Dream/可以匹配"One World One Dream"中的World或Dream


5.分组
分组就是利用小括号将多个单独的字符或字符类组合成子表达式,以便可以像处理一个大力的单元那样,以便于用"|","*","+"或者"?"等来处理他们。比如/J(ava)?Script/可以匹配JavaScript,也可以匹配JScript
0 0
原创粉丝点击