正则表达式详解 - 总结篇
限定符{n}
在特定字符后,只能跟着连续的n个特定的字符
举例说明:o{2}不能与”Bob”中的”o”匹配,但可以与“food”中的两个“o”匹配,也可以与“fooooood”中的任意两个连续的“o”匹配
{n,}在特定字符后边,必需跟着至少“n”个相同的特定的字符
举例说明:o{2,}不能与“Bob”匹配,但可以和“fooooood”中所有的“o”匹配
{n,m}在特定字符后,必需跟着至少“n”个至多“m”个同样的特定的字符。
举例说明:o{1,3}可以匹配“Bob”中的“o”,也可以匹配“foooood”中的连续的几个“o”
+举例说明:“zo+”与“zo”和“zoo”等在字母z后面连续出现一个或者多个字母o的字符串匹配
*举例说明:“zo*”与“z”和“zoo”都能匹配。*等效于{0,}
?举例说明:“zo?”可以与“z”或“zo”,也可以匹配“zoo”中的“zo”部分,但不能匹配整个“zoo”
选择匹配符只有一个,就是“|”字符,用于选择匹配两个选项之中的任意一个,它的两个选项是字符“|”两边的尽可能最大的表达式
用于指定该符号部分可以匹配多个字符中的任意一个[…]
[…]包含中括号中的任意一个
说明:如果字符中包含“]”,需要将它放在第一位,即紧跟在“[”后面。[…]中的字符“\”仍然作为转义符,若要在[…]中使用“\”字符本身,则必须是“\\”
[^…]刚好与[…]相反,不包含中括号中的一个
说明:只要“^”不出现在“[”的后边,那么的它的意义就是真正的“^”
[a-z]包含a到z的一个或者多个字符。前边的是起始字符,后边的是终止字符。
如果在中括号表达式中包含字面意义的“-”,可以用反斜杠“(\)”将它标记为原意字符,例如,[a\-z],也可以将“-”放在方括号的开始处或者结尾处,例如[-a-z],[a-z-]。
[^a-z]与[a-z]的意义正好相反
\d可以匹配任意一个数字字符
\D与“\d”的意义恰好相反,不能匹配任意一个数字字符,可以匹配一个非数字字符
\s可以匹配任何空白字符;例如[ \f\n\r\t\v],“\f”换一个符号,“\n”换行,“\r”回车,“\t”制表符,“\v”。
\S与\s的意义相反,匹配一个非空白的字符,等效于[^ \f\n\r\t\v]
\w匹配[A-Za-z0-9]。
\W匹配[^A-Za-z0-9],也就是与\w的意思相反
.可以匹配除了“\n”之外的任何单个字符。
(.)\1可以匹配除了“\n”之外的任意两个连续的相同字符。如要匹配包括“\n”在内的字符,可以使用[\w\W],[\d\D]等模式。
用于规定匹配模式在目标字符串中出现的出现位置
^规定字符串的起始位置
举例说明:“^o”与“ok”中的o匹配,但不能与“hello”中的“o”匹配。如果设置了RegExp对象的Multiline属性,^还会与行首进行匹配,即与“\t”或“\n”之后的位置匹配。
$规定字符串的结尾位置
举例说明:“$o”与“hello”中的“o”匹配,但不能与“ok”中的“o”匹配。如果设置了RegExp兑现的Multilien属性,$还会与行尾进行匹配,即与“\n”或“\t”之前的位置匹配。
\b规定了字与空格间的位置,已经目标字符串的开始和结束的位置
举例说明:“er\b”可以匹配“never ok”中的“er”,但是不能匹配“very”中的“er”因为“very”中“er”的后边并不是一个单词的分隔符。
\B用于匹配非边界的情况
举例说明:与\b恰好相反