正则表达式学习笔记
来源:互联网 发布: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]表示从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)
- 正则表达式学习笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 学习正则表达式笔记
- 正则表达式学习笔记
- 学习正则表达式笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 通过HSV实现对图像亮度的调整
- The Knowledge of Linux-.-Day07
- 【游戏设计模式】之 《游戏编程模式》全书内容提炼总结
- 分页工具类源码
- Piwik安装所遇问题及解决方法
- 正则表达式学习笔记
- Java EL 详细用法讲解
- hdoj1089
- JVM内存模型及垃圾回收算法
- 总体上对JAVA一个全面的认识
- 关于 UGUI 字体花屏或乱码
- SVN服务的搭建和使用
- 简单谈谈JavaScript中的this
- 使用IDEA动态调试smali代码