当前位置:编程学习 > 网站相关 >>

正则表达式详解 - 总结篇

限定符
{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”之后的位置匹配。 www.zzzyk.com
 $
规定字符串的结尾位置
举例说明:“$o”与“hello”中的“o”匹配,但不能与“ok”中的“o”匹配。如果设置了RegExp兑现的Multilien属性,$还会与行尾进行匹配,即与“\n”或“\t”之前的位置匹配。
   \b
规定了字与空格间的位置,已经目标字符串的开始和结束的位置
举例说明:“er\b”可以匹配“never ok”中的“er”,但是不能匹配“very”中的“er”因为“very”中“er”的后边并不是一个单词的分隔符。
 \B
用于匹配非边界的情况
举例说明:与\b恰好相反
补充:综合编程 , 其他综合 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,