正则表达式学习笔记

来源:互联网 发布:mac腾讯视频 编辑:程序博客网 时间:2024/06/01 20:13

一、正则表达式的介绍

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]表示从azAZ当中的任意一个字符

 

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

*

重复两次或更多次

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

+

重复一次或者更多次

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

重复零次或一次

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

{n}

重复n

例如:a{4}匹配4a

{n,}

重复n次或者更多次

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

{n,m}

重复nm

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

 

正则表达式中文字符匹配

正则表达式也支持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)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 0
原创粉丝点击