android开发之正则表达式
来源:互联网 发布:超级淘宝txt下载 编辑:程序博客网 时间:2024/05/08 06:43
正则表达式对于很多的android开发人员来说,并不是那么熟练,对于web开发人员来说,可能用得要多一些。最近公司的项目也用到了正则表达式,用于匹配表情、股票、@好友等信息。今天有必要将正则表达式的知识点总结一下,对于我来说,正则表达也就是刚入门的水平。
所谓正则表达式,说白了就是用于匹配字符串的工具。
而我今天要讲的主要是从五个方面进行介绍。
1. 正则表达式的基础语法。
2. 匹配。
其实使用的是String类中的matches方法。
3. 分割。
其实使用的String类中的slipt方法。
4. 替换。
其实使用的就是String类中的replaceAll方法。
5. 获取。
将字符串中符合规则的都取出来。
需要用到正则表达式对象。
我们就从以下几个方面进行讲解。
一、正则表达式的基础语法
我学习正则时,主要是参考了JDK_API_1_6_zh_CN文档,我会在博客结尾处,提供下载。这一块的东西实在是太多了。我只能挑个说一下了。
<span style="font-family:Microsoft YaHei;">字符 x 字符 x \\ 反斜线字符 \0n 带有八进制值 0 的字符 n (0 <= n <= 7) \0nn 带有八进制值 0 的字符 nn (0 <= n <= 7) \0mnn 带有八进制值 0 的字符 mnn(0 <= m <= 3、0 <= n <= 7) \xhh 带有十六进制值 0x 的字符 hh \uhhhh 带有十六进制值 0x 的字符 hhhh \t 制表符 ('\u0009') \n 新行(换行)符 ('\u000A') \r 回车符 ('\u000D') \f 换页符 ('\u000C') \a 报警 (bell) 符 ('\u0007') \e 转义符 ('\u001B') \cx 对应于 x 的控制符 字符类 [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](减去) 预定义字符类 . 任何字符(与行结束符可能匹配也可能不匹配) \d 数字:[0-9] \D 非数字: [^0-9] \s 空白字符:[ \t\n\x0B\f\r] \S 非空白字符:[^\s] \w 单词字符:[a-zA-Z_0-9] \W 非单词字符:[^\w] </span>其中在正则里边.表示任何字符。\w表示单词字符,字符范围[a-zA-Z_0-9]。在字符串使用\时,应该是对于双\\。比如匹配数字"\\d"而不是"\d"。
二、匹配
下面提供几个例子:
1. 匹配qq号。要求:全为数字,长度为5-15位,不能以0打头。
regex:[1-9][0-9]{4,14}
2. 指定字符串是由一个字符串组成的,要么a、要么c。
regex:[ac]
3. 第一个字母和最后字母是固定的b和k,中间有多个o,或者中间出现多个相同字符。
regex:bo*k(b[a-zA-Z]+k)
4. 检查手机号。
regex:1[3578][0-9]{9} (1[3578]\\d{9})
三、分割
四、替换
2.将字符串"sdfaadefggggwfoooolw"中的叠词替换成叠词的第一个字符。
str.replaceAll("(.\\1+)", "$1"); 在第二个参数中要使用第一个组的话,可使用$标号的方式。
3. 在一些后天管理系统中要屏蔽敏感词
String str = "我的手机号:18001358078,我的qq号:303819511";把手机号、qq号中间添加***这中字符。
String s = str.replaceAll("(\\d{2})\\d+(\\d{2})","$1**$2" )
五、获取
String str = "da jia hao, ming tian bu fang jia,xie xie!";// 由具体的正则表达式生成模式对象Pattern p = Pattern.compile("\\b[a-zA-Z]{3}\\b");// 使用模式对象对原字符序列进行匹配Matcher macher = p.matcher(str);while(macher.find()){System.out.println(macher.group());}
文中说到的中文文档可点击:下载
- android开发之正则表达式
- android开发之正则表达式(EditText)
- Android开发技术铺垫之正则表达式
- Android之正则表达式
- Android开发之正则表达式的使用1
- Android开发之旅一常用的正则表达式
- iOS开发之正则表达式
- IOS开发之常用的正则表达式
- IOS开发之常用的正则表达式
- 易语言程序开发之正则表达式
- IOS开发之常用的正则表达式
- IOS开发之常用的正则表达式
- php开发之正则表达式(一)
- php开发之正则表达式(二)
- IOS开发之常用的正则表达式
- iOS开发之详解正则表达式
- ios开发之 常用正则表达式
- iOS开发之常用的正则表达式
- axis2 WebService的发布与调用
- 深入分析JavaWeb Item24 -- jsp2.X自定义标签开发进阶
- Mac Time Machine恢复系统 Time Machine还原系统教程
- java容器
- 14、osg中通过一个模型,将其中一个模型隐藏掉输出成另一个模型(osg文件)
- android开发之正则表达式
- 在JSP的规范中提供了一些标准标签(Standard Tag),所有的容器都支持这些标签
- JS判断对象是否存在的10种方法总结
- [安全]DDOS攻击又来 用户应该勇敢面对
- rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY
- Mysql in子查询效率慢的解决方法
- 【Java学习笔记】GUI界面之小游戏
- [笔记]c++包含纯虚函数的类不允许被实例化
- makefile目标覆盖