正则表达式
格式
正则表达式以/开始,以/结束中间包含字符串的匹配规则。
/a/匹配字符串中的第一个a字符,/abc/表示匹配连续的abc字符。
常用符号
[]表示当前字符位置匹配的集合(注意元素间没有逗号分隔),例如:/[abc]/可以匹配"a","b"或者"c",[0-9]可以表示所有数字[a-z]表示所有小写字母[A-Z]表示所有大写字母。例如/[1-9][0-9]/表示10-99的所有数字。
^在集合外面表示以某个规则开始,如/^[0-9]/表示以数字开始,在集合里面表示除集合外的所有符号如/[^a-z]/表示除小写字母外的所有符号都匹配规则
$表示以某个规则结尾,可以与^一起使用,/^[a-z][0-9]$/表示以小写字母开始,并以数字结束,例如a1、b3。
\w表示所有字母、数字以及下划线,相当于[a-zA-Z0-9_],\W表示除去所有字母数字和下划线,相当于[^a-zA-Z0-9_]。
{n,m}可以表示某规则的匹配个数,/[0-9]{2,4}/表示只能匹配两个数字到四个数字例如01、333、4444,n必须小于等于m,且{n,}表示>n个,{n}表示n个。
+表示至少有一个匹配该规则的字符例如:/[a-z]+www/可以匹配"qwww"也可以匹配"adsdawww"。
*表示匹配某规则0次或多次。
?表示匹配某规则0次或1次,当?出现在匹配次数相关操作符后面时,表示非贪婪匹配,如+?代表至少匹配一次,但尽量少匹配,??表示匹配0次或一次,但尽量少匹配,例如:/[\d]+/匹配"123"的结果是123而/[\d]+?/匹配"123"的结果是1。
\s表示所有空字符包括制表符、空格、换页符,\S表示除空字符外所有字符。
\d表示所有数字,相当于[0-9]。
.表示除换行符外的所有字符。
\b用于匹配有边界的单词比如/\bred\b/匹配"abc red a"但不匹配"redww sred"。