正则表达式常用语法

正则表达式的作用:  

  对于现在的程序,几乎每一个都会用到字符串,虽然许多编程语言都会对String有着很好的支持,但是在遇到一些繁琐的验证,其自带的方法检测会很吃力,所以出现了正则表达式来对字符串进行处理,常用的会有对特殊字符串的匹配将其替换,或者验证某种格式的字符串。

常用符号的意义(Java):

  

  

  
  边界处理(空格处理)

      

  注:此方法在java开发文档中提取,但是在其他的语言中也同样适用。

 括号在表达式中的意义:

  ():

    圆括号一般会在表达式中会将分为组,一对括号为一组,而且在使用的时候可以方便的取出某一组来进行操作。

  []:

    方括号[]会匹配其中的某一个字符,相当方括号里面的各个字符为待选择项目,所匹配的字符必须是其中的一项,同时里面也可以是表达式。

其次有些符号在[]可能发生变化,如:^在[]表示取反,而^ 没在[]中的时候就表示字符串的开头。

  {}

    花括号表示限制长度。如:.{1}表示匹配一个任意字符,{1,3}表示至少一个最多3个。

扫描二维码关注公众号,回复: 3573039 查看本文章

 特殊符号:

  

  锚号“^”和“$”

    锚号是用来把正则“锚”在字符串的特定位置的。最普通的锚号是“^”和“$”,当“^”用作锚号的时候,表示一行的开始;当“^”用作锚号的时候,表示一行的结束,这样很容易的就可验证字符串的开头或者结束。

    ps:还有匹配目标文本的开始和结束采用 \A 和 \Z 或者 \z ;在大多数的语言中,\A 和 ^ 是等价的,\Z 和 \z 的区别在于是否会匹配换行符号 \ Z 可以将换行符号算在里面,而 \z 则不可以。

  词界“\b”“\B”

    \b 会匹配一个单词的开始或者结束。

    \B 会匹配文本中 \b 不会匹配的每一个位置。

  连字符“-”

    用来划定范围,表示某一范围内的任何字符。比如/[1234567890]/会感觉很不方便。如果表示为/[0-9]/就会显得精简的多。

  问号“?”

    表示一种异或关系;比如我们在语料库中搜索诗人“李白”或者“李太白”,此时方括号就无法帮助我们,因为[]只能表示xx或者XX,但是不能表示有xx或者没xx。此时可以用“?”来表示前一个字符有或者无。

  “|”和&&

    “|”表示或者的意思;而&&表示且。

贪婪模式与非贪婪模式

  .*:出现在表达式中时为贪婪模式,会将所有的匹配都找到;比如:在HTML中有许多标签<div>part1</div><div>part2</div><div>part3</div><div>part4</div> 使用<div>.*</div>匹配到的是:<div>part1</div><div>part2</div><div>part3</div><div>part4</div>

  .*?: 则为非贪婪模式:他只要找到匹配后就不会找下一个了;使用<div>.*?</div>匹配到的是:<div>part1</div>。

(?<=exp) (?=exp)零宽断言

  (?<=exp) 表示匹配exp之后的,(?=exp)表示匹配exp之前的。

猜你喜欢

转载自www.cnblogs.com/duheng-biu/p/9785069.html