正则表达式学习笔记

一、正则表达式的介绍

1、正则表达式的定义:记录文本规则的代码

eg: 10:20->使用\d代表一个数字->规则代码:   \d\d:\d\d

2、正则表达式组成与名词解释:

①元字符:具有特殊含义的符号,如:\d代表一个数字

②普通字符:普通语言中的单词

③匹配:字符串与正则表达式是否等价

3、正则表达式解决哪些问题:

①随时间变化的文本,如时间显示。

②多语言适配问题,可将多语言字符串写成一个UI对象。

③多种不同的字符显示情况,如定制机,移动要求显示一种,联通又要求显示为另一种。

④字符串处理利器,字符串的匹配查找、替代、拆分、萃取。

二、正则表达式元字符

常用元字符:

     .

表示任意一个字符

     \s

空格字符(空格键,tab,换行,换页,回车)

     \S

非空格字符([^\s])

\d

一个数字,(相当于[0-9])

      \D

一个非数字的字符,(相当于[^0-9])

       \w

一个单词字符(word character)(相当于[a- A-Z_0-9])

       \W

一个非单词的字符,[^\w]

       ^

一行的开始

      $

一行的结尾

      \b

一个单词的边界

     \B

一个非单词的边界

     []

匹配方括号内的一个字符

例如:[abc]表示字符a,b,c中的任意一个(与a|b|c相同)

[a-z A-Z]表示从a到z或A到Z当中的任意一个字符

正则表达式常用表示次数的元字符

*

重复零次或更多次

例如:a*匹配零个或者多个a

+

重复一次或者更多次

例如:a+匹配一个或者多个a

重复零次或一次

例如:a?匹配零个或一个a

{n}

重复n次

例如:a{4}匹配4个a

{n,}

重复n次或者更多次

例如:a{4,}匹配至少4个a

{n,m}

重复n到m次

例如:a{4,10}匹配4~10个a

正则表达式中文字符匹配

正则表达式也支持Unicode码,汉字范围可使Unicode来表示

①[\u4E00-\u9FA5]汉字

②[\uFE30-\uFFA0]全角字符

③匹配双字节字符(包括汉字在内):[^\x00-\xff]

三、正则表达式匹配示例

字符串

模糊匹配

较精确匹配

12:12

\d+:\d+

\d\d:\d\d

2013-10-24 星期四

\d+-\d+-\d+ 星期[\u4E00-\u9FA5]

\d{4}-\d{2}-\d{2} 星期[一二三四五六日]

5:25PM

\d+:\d+[AP]M

\d?\d+:\d\d[AP]M

下午4:40

.午\d+:\d+

[上下]午\d?\d:\d\d

Ip地址

(\d+\.){3}\d+

(\d?\d?\d\.){3}\d?\d?\d

邮箱地址

\w@\w.\w

^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+

场景字符串的匹配

文件大小

数字

单位

数字

1GB

整数

GB

整数或小数

1KB

小数

MB

\d+|\d+\.\d+

500 B

空格

KB

单位

...

B

[GMK]?B

(\d+|\d+\.\d+)\s?[GMK]?B

四、正则表达式操作

正则表达式相关操作

Uiselector涉及到字符串的搜索条件:

文本条件搜索

描述条件搜索

类名条件搜索

资源ID条件搜索

Java文本处理操作:

匹配字符串

替换字符串

萃取字符串

拆分字符串

正则表达式相关API

只要是文本字符串都可以使用正则表达式

描述

UiantomatorAPI

正则文本匹配

textMatches(regex)

正则描述匹配

descriptionMatches(regex)

正则类名匹配

classNameMatches(regex)

正则资源ID匹配

resourceIdMatches(regex)

描述

JAVA API

匹配字符串

Matcher(regex)

替换字符串

Replace(regex.input)

萃取字符串

Matcher.group()

拆分字符串

Split(regex)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值