正则表达式

定义

  

正则表达式(regular expression,简写为regex )是一个字符串,用来描述匹配一个字符串集合的模式。可以使用正则表达式来匹配、替换和拆分字符串。

正则表达式的用法

2.1限定符

匹配0次或1次出现

*

匹配0次或多次出现

+

匹配1次或多次出现

{n}

匹配正好n次出现

{n,m}

匹配n到m(不包含)次出现

{n,}

匹配至少n次出现

当限定符的对象是多个字符的重复,使用()+限定符。

2.2 或运算

正则表达式

匹配

示例

(ab|cd)

ab或cd

ten匹配t(en|im)

2.3 字符类

正则表达式

匹配

[abc]+

由abc这几个字母构成的单词

[a-z]+

所有的小写英文字符

[a-zA-Z]+

所有的英文字符

[a-zA-Z0-9]+

所有的英文字符和数字

[^0-9]+

所有的非数字字符

在方括号中的前面写一个脱字符(^),则代表要求匹配除了^后面列出的[]中以外的字符。

2.4 元字符

  正则表达式中已经预先定义好了一系列常用的字符类型,比如数字、空白符、单词开头、结尾等等,它们被称作元字符

  正则表达式中的大多数元字符都以反斜杠开头。

\d

数字字符

\w

单词字符(英文、数字、下划线)

\s

空白符(包含Tab和换行符)

\D

非数字字符

\W

非单词字符

\S

非空白字符

.

任意字符除换行符

^a

匹配行首的a

a$

匹配行尾的a

2.5 贪婪与懒惰匹配

  贪婪匹配:正则表达式中包含重复的限定符时,通常的行为是匹配尽可能多的字符

  懒惰匹配:匹配尽可能少的字符。

默认情况下所有的量词符都是“贪婪”的。这意味着它们会尽可能匹配最多次。

比如,下面语句显示JRvaa。因为第一个匹配成功的是aaa

    

 

 

可以通过在后面添加问号(?)来改变量词符的默认行为。

比如,下面的语句显示JRaavaa,因为第一个匹配成功的是a

 

替换和拆分字符串

String类也包含replaceAll、replaceFirst和split方法,用于替换和拆分字符串。如图:

 

3.1 替换

replaceAll方法匹配所有匹配的子字符串,replaceFirst方法替换第一个匹配的子字符串。例如,下面代码

 

 

 

显示

 

下面代码

 

显示

 

3.2 拆分

有两个重载的split方法:

  1. split(regex)方法使用匹配的分隔符将一个字符串拆分为子字符串。

例如,以下语句

 

将字符串“JavaHTML2Per1”拆分为Java、HTML以及Per1并且保存在tokens[0],tokens[1]以及tokens[2]中。

    2.在split(regex,limit)方法中,limit参数确定模式匹配多少次。如果limit<=0,split(regex,limit)等同于split(regex)。如果limit>0,模式最多匹配limit-1次。示例:

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值