简单的正则表达式介绍

        字符串匹配一直是程序设计的一个热门领域,但有时候我们需要的不是精准的完全匹配,而是模糊匹配,如找出一个字符串中说有符合“xx : xx”格式的表示时间的字符串,显然不能直接使用equals等方法进行查找而应该使用正则表达式。

        正则表达式,又称规则表达式,通常被用来检索、替换那些符合某个模式(规则)的文本。例如下面这个正则表达式:

        [0-9]{2}

        就可以与所有的二位数匹配。接下来简单的介绍一些正则表达式的使用方法。一般而言,在JAVA中,频繁使用到正则表达式的有spilt和matches方法,前者用于分割字符串,后者用于判断匹配是否成功。它们可以使用以下形式的正则表达式:

1.无特殊符号的正则表达式

即正常的字符串,与字符串匹配的模式一致,即会与说有包含表达式的字符串匹配,如下面这个例子:

正则表达式:hello

可以匹配:helloworld,hellofriend,hellofather

除了无符号的正则表达式外,其他的正则表达式只能匹配固定长度的字符串。

2.含有通配符——“.”

即在表达式中使用”.”来表示任意符号,包括空格、Tab字符甚至换行符如下面这个例子:

正则表达式:hel.o

可以匹配:hello,helao,helio

3.含有方括号符号

如果想要限定可以替换的字符,就可以使用方括号,在方括号中限定可以替换的字符,如下面这个例子

正则表达式:hel[012]o

可以匹配:hel0o,hel1o,hel2o

其中可以用0-9表示所有数字,a-z表示所有小写字母,A-Z表示所有大写字母

4.含有或符号和圆括号

如果需要替换的字符长度不一致,可以使用或符号和圆括号,如下面这个例子:

正则表达式:h(e|ee|eee)llo

可以匹配:hello,heello,heeello

5.含有大括号

如果想要具体的表示字符的个数,可以使用大括号,如下面这个例子:

正则表达式:h[0-9]{2}llo

可以匹配:h00llo,h11llo,h12llo

同时还有可以用以下方式确定个数:

符号

个数

*

任意次(包括0次)

+

至少一次

一次或零次

{a,b}

a次到b次

 

6.否符号^

如果只是想要匹配某个不以某字符开头的字符串,可以使用^符号,如下面这个例子:

正则表达式:h[^e]llo

可以匹配:hallo,hillo,htllo

有了上面这些基础,就可以写出一些简单的正则表达式,如下面这个例子:

正则表达式:[0-9]{11}

可以匹配:13549874589,15849872561,12236985847

既可以与所有的手机号码匹配。

因此,合理的利用正则表达式,就可以完成许多复杂的匹配问题。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值