首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

正则表达式详解 - 小结篇

2013-01-04 
正则表达式详解 - 总结篇限定符{n}在特定字符后,只能跟着连续的n个特定的字符举例说明:o{2}不能与”Bob”中

正则表达式详解 - 总结篇
限定符{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”


选择匹配符

         选择匹配符只有一个,就是“|”字符,用于选择匹配两个选项之中的任意一个,它的两个选项是字符“|”两边的尽可能最大的表达式


贪婪匹配和非贪婪匹配贪婪匹配:默认情况下,正则表达式使用最长(也叫贪婪)匹配原则。如果要将“zoom”中的“zo?”部分替换成“r”,则替换结果是“rom”,而不是“room”;如果要将“zoom”中的“zo*”的部分替换成“r”,那么结果就是“rm”,而不是“rom”或者“room”非贪婪匹配:当字符“?”紧跟着任何其他限定符(*,?,{n},{n,},{n,m})之后时,匹配模式变成使用最短(也叫非贪婪)匹配原则。例如,在字符串“foooood”中,“fo+?”只匹配“fo”部分,而“fo+”匹配“foooo”部分

字符匹配符

          用于指定该符号部分可以匹配多个字符中的任意一个[…]

[…]

包含中括号中的任意一个

说明:如果字符中包含“]”,需要将它放在第一位,即紧跟在“[”后面。[…]中的字符“\”仍然作为转义符,若要在[…]中使用“\”字符本身,则必须是“\\”

[^…]

刚好与[…]相反,不包含中括号中的一个

说明:只要“^”不出现在“[”的后边,那么的它的意义就是真正的“^”

[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恰好相反

 

 

 

热点排行