正则表达式“真的不能再少了”基础篇

正则表达式

描述字符串格式的一套体系,其他语言也可以使用。以下只是一些常用的,也是最基础的知识,希望能对想要快速入门的朋友们有一定的帮助。

一个字符

字符串的长度是可变的,有长有短。但是根本上还是由一个一个的字符所组成的,因此我们需要了解如何表示一个字符。例如:表示一个字符 a,使用一对中括号"[ ]",其中放入a 像这样 [a]此时表示一个字符a。中括号"[ ]",表示的含义就是中括号中的其中一个字符。如下:

正则表达式 说明
[abc] a、b、c中任意一个字符
[^abc] 非a、b、c中任意一个字符
[a-z] a到z中的任意一个字符
[a-zA-Z0-9] a到z,A到Z,0到9中的任意一个字符
[a-z&&[^bc]] a~z除b,c一个字符

[a-z&&[^bc]]可以一步步来看,表示a-z&&[^bc]中的任意一个字符,继续拆分a-z和[ ^bc ],不难看出&&表示“且”,也就是所说a到z并且没有b、c字符。

预定义字符集

就是一些特定字符组合在一起所表示的某一个特定的含义,如下:

正则表达式 说明
. 任意一个字符
\d 任意一个数字字符,相当于[0-9]
\w 单词字符,相当于[a-zA-Z0-9_]
\s 空白字符,相当与[\t\n\xOB\f\r]
\D 非数字字符
\W 非单词字符
\S 非空白字符

量词

了解如何表示一个字符,表示多个就更简单了。只需要对出现的次数进行限定就行(X{n,} 这个中的n必须设置下限)

正则表达式 说明
X? 表示0个或1个X
X* 表示0个或任意多个X
X+ 表示1个或任意多个X
X{n} 表示n个X
X{n,} 表示n个或任意多个X
X{n,m} 表示n个到m个X

分组

故名之意,所谓分组,就是用小括号“( )”,将多个字符分成一组,以组为单位进行匹配。也可以在后面使用量词进行数量的限制。

正则表达式 说明
(abc|def) abc或者def为一组

边界符

用来表示和限定开始和结束的位置

正则表达式 说明
^ 开始边界
& 结束边界

不加边界符部分匹配,Java默认添加边界符。

如果真的要完完整整的学习完正则表达式,这些是完全不够的,简直就是“九牛一毛”。但是只是了解的话,我认为这些就已经足够了。如果真的要用正则表达式解决问题,完全可以找现成的,因为那些已经是用了不能再用了,要比自己写的正确性高的多。基本上也都是常用的,像邮箱的验证、手机号的验证等。当然了,正则表达式还可以对数据进行分割,这个时候就需要我们自己去设计实现自己想要达到的效果了。
最后声明,以上内容是自己的学习、总结的,分享给大家。如果有不当的地方还请大佬指正交流!

猜你喜欢

转载自blog.csdn.net/L_jianjian/article/details/114296109