JavaScript正则学习
用/表示正则的开始与结束 ,如/abc/
--- 查找到第一个匹配后停止,若想全局匹配,添加g修饰 ,如/abc/g 可以匹配”abcdefabc“
--- 区分大小写,若想不区分大小写,添加i修饰,如/abc/i 可以匹配 “ABc”
--- 还有个修饰符m,进行多行匹配,影响^和$
/abc/匹配”it is a string abcdefg”中的”abc”,但不匹配”ab cdefg”里的”ab c”
* 先前项0次或多次出现,/ab*c/里的b字符 0次或多次出现,所以匹配"cbbabbbbcdebc”或”shhfacdb”
注意,这里先前项,如果是\w或\d。则/N\d*/可以”N” 或”N1” 或”N333” ,注意也可以”N123456”。匹配的数字不是要全相同。这里谨记。后面的+同理
与字符结合可以转义或特殊含义。如\*仅表示字符*了,所以/ab\*c/匹配字符串”yttdsab*cyyss”里的(黄色标出,下同),但\d表示数字了,后面会再说
^匹配输入的开始,如/^A/匹配”AbcFA“,但匹配”aAdd”…/^\d+/ 可以匹配”123”或”123abc”等。除此,^也用在[]里表示取反,如[^abcd]表示既不是a,也不是b,也不是c,也不是d的字符
$表示输入的结束,如/A$/匹配/ahdAhheA/,但不匹配”AjjjADhj”,如/\d+$/可以匹配”234”或”acd234”等…..所以综合/^\d+$/匹配的只能完全是数字的输入,如”26643”
*是0次或多次,那么最少1次则用+号。/a+b/可以”abcd”或”aaabbca”,但不可以”bcdac”
?则是0次或1次。/a?b/可以对应”ab”或”b” ,因此可以匹配”abcd”或”cbddd”
.小数点可以匹配除换行符意外的任何单字符。/.t/ 可以”at time” “it is!”
x|y x或y 。 /red|green/ 可以匹配”red apple”或”green apple”
{n} 匹配n次 /a{3}/ 可以匹配”taaaaat” ,不可以”ttaatt”
{n,m}最少n次,最多m次。m可省略,表示无数次。匹配越多越好,如。/a{2,4}/ 匹配”caaatty“ 或”caaaaaaaay”
[xyz]其中的任意一个字符,可用-表示范围,如a-d表示a b c d。.或*等在里面普通字符,无其他意义。/[a-d*]/可以匹配”it an apple“ 或 “int *p” 。/[^a-d*]/可以匹配”accurate” “***start***” /[\d]+/ 可匹配 “tr655096fr”
\b指边界位置,本身不代表字符。它不是空格。/\bs/可以”start” “now start” /\w\b\w/匹配nothing
\B非边界位置 /\B../可以匹配”atstts” 。其中,因为at前面是边界,所以没匹配
\d 匹配一个数字字符,等价[0-9]
\D 匹配一个非数字字符,等价[^0-9]
\n 0x0A \r 0x0D \f 换页字符 \t TAB \0 NULL字符
\s空白字符,包括空格 回车 缩进等 /\st/匹配 ”na ts“ /\s\w*/ 匹配”it’s beautiful” 。空格都匹配了,若不想空格,可用\b
\S 除空白字符外的字符
\w 包括字母数字下划线,等价[A-Za-z0-9_]
\W ,等价[^A-Za-z0-9_]
() 子表达式,/(why)+/ 可匹配”tt whywhywhyiuu” 。它还可以记住匹配。常和\n一起使用 n是正整数。 /(ts)(4) R\1\2/ 对应”ts4 Rts4”
(?:x) 不记住匹配,若想匹配abc字符串2到4次,/abc{2,4}/不行,因为{}只针对字符c 。/(?:abc){2,4}/则针对整个abc
x(?=y) 只当x后面是y时匹配x 。/it(?= is)/ 匹配”it says it is a dog”….. /it(?=’s| is)/g 匹配”it says it’s pet and it is not”
x(?!y) 只当x后面不是y时匹配x。 /it(?! says)/ 匹配”it says it is a dog”
\xhh 16进制数,如\xff \uhhhh,如\xffce
发表评论
要发表评论,您必须先登录。