正则表达式常用语法
Posted duheng-biu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式常用语法相关的知识,希望对你有一定的参考价值。
正则表达式的作用:
对于现在的程序,几乎每一个都会用到字符串,虽然许多编程语言都会对String有着很好的支持,但是在遇到一些繁琐的验证,其自带的方法检测会很吃力,所以出现了正则表达式来对字符串进行处理,常用的会有对特殊字符串的匹配将其替换,或者验证某种格式的字符串。
常用符号的意义(Java):
边界处理(空格处理)
注:此方法在java开发文档中提取,但是在其他的语言中也同样适用。
括号在表达式中的意义:
():
圆括号一般会在表达式中会将分为组,一对括号为一组,而且在使用的时候可以方便的取出某一组来进行操作。
[]:
方括号[]会匹配其中的某一个字符,相当方括号里面的各个字符为待选择项目,所匹配的字符必须是其中的一项,同时里面也可以是表达式。
其次有些符号在[]可能发生变化,如:^在[]表示取反,而^ 没在[]中的时候就表示字符串的开头。
{}
花括号表示限制长度。如:.{1}表示匹配一个任意字符,{1,3}表示至少一个最多3个。
特殊符号:
锚号“^”和“$”
锚号是用来把正则“锚”在字符串的特定位置的。最普通的锚号是“^”和“$”,当“^”用作锚号的时候,表示一行的开始;当“^”用作锚号的时候,表示一行的结束,这样很容易的就可验证字符串的开头或者结束。
ps:还有匹配目标文本的开始和结束采用 A 和 或者 z ;在大多数的语言中,A 和 ^ 是等价的, 和 z 的区别在于是否会匹配换行符号 Z 可以将换行符号算在里面,而 z 则不可以。
词界“”“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之前的。
以上是关于正则表达式常用语法的主要内容,如果未能解决你的问题,请参考以下文章