java零基础学习:正则表达式

正则表达式

27.9正则表达式

1、概念:是指一个用来描述或者匹配一系列符合某个语法规则的字符串,其实就是一种规则。

2、案例演示:

校验QQ号码:

a.要求是5-15位数字

b.0不能开头

c.必须都是数字

采用非正则表达式实现如图1所示:

采用正则表达式实现如图2所示:

3、字符类的正则表达式:详见API

字符类

[abc] a、b 或 c(简单类)

[^abc] 任何字符,除了 a、b 或 c(否定)

[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)

[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集)

[a-z&&[def]] d、e 或 f(交集)

[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去)

[a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去)

程序演示如图3所示:

4、预定义字符:详见API

预定义字符类

. 任何字符(与行结束符可能匹配也可能不匹配)

\d 数字:[0-9]

\D 非数字: [^0-9]

\s 空白字符:[ \t\n\x0B\f\r]

\S 非空白字符:[^\s]

\w 单词字符:[a-zA-Z_0-9]

\W 非单词字符:[^\w]

程序演示如图4所示:

5、正则表达式切割功能,如图5所示:

6、把给定字符串中的数字排序

如图6所示:

7、使用正则表达式的替换功能:

程序演示如图7所示:

27.10正则表达式的分组功能

1、叠词的实现,如图8所示:

2、按照叠词切割:“sdqqfgkkkhjppppkl”

如图9所示:

3、替换:

需求:"我我...我...我.要.要要...要学...学学..学.编.遍遍.编程.程.程..程"

将字符串还原成:“我要学编程”

演示如图10所示:

感谢支持,我是小区学习录,喜欢点关注。每天根据小编的学习,持续分享学习的笔记与心得。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180723A0KF6Z00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券