正则表达式详解 - 总结篇

限定符

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

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值