正则表达式(regular expression)
2016-03-22 01:45
337 查看
//正则表达式(regular expression) /* split matches replaceAll */ /** * 是一种验证规则,用来判断字符串是否符合某种特定格式: * * 手机号/邮箱...... */ /* * 常见的正则的规则: * [0-9]:用来匹配一个数字 简写方式:\d * [a-z]:用来匹配一个小写英文字母 * [A-Z]:用来匹配一个大写英文字母 * [\u4e00-\u952f]用来匹配一个汉字 * [135]1或3或5 * [1ab]1或a或b * [0-9a-zA-Z]匹配数字+大小写英文 * [0-9a-zA-Z_] 单词字符简写方式:\w * * * * 原始字符串.matches(正则) * 返回boolean型,表示原始字符串与正则表达式是否匹配 * * [^0-9] 用来匹配一个非数字 简写方式:\D * [^a-z] 除了a-z 以外其他字符 * [^a-zA-Z0-9_]非单词字符 简写方式:\W * 空白字符 空格 \t 简写方式:\s * * * 量词: * {m,n} m表示最少出现的次数,n表示说最多出现的次数 * {k} 恰好出现k次 * {m,} 最少出现m次 * {,n} 最多出现n次 * {0,} 出现0到无穷次 简写方式:* * {1,} 出现1到无穷次 简写方式:+ * {0,1} 可以出现1次或不出现 简写方式:? * * * 正则表达式: * . :正则的小数点:表示匹配任意一个字符 真正的小数点:\. * * 验证邮箱地址:xxxxxxx@xxxxxx.xxx * \w+@\w+\.\w+ //邮箱地址简单写法,后面改进 */ public class TestRegular { public static void main(String[] args) { /* * 原始字符串进行拆分: * 原始字符串.split("正则") * * 根据正则表达式,将原始字符串按正则表达式进行拆分 * * 例:"aaa.bbb.ccc.ddd".split(","); * ==>返回字符串数组String[]{"aaa","bbb","ccc","ddd"} * * * */ System.out.println("a".matches("[0-9]"));//false System.out.println("1".matches("[0-9]"));//true //正则表达式中的 \ 在java中需要写为 \\ System.out.println("1".matches("\\d"));//注意java转义字符//\true System.out.println("2".matches("[135]"));//false System.out.println("吃".matches("[\u4e00-\u952f]"));//汉字不需要\\,\\u即可 System.out.println("严".matches("[\u4e00-\u4e0f]")); //验证单词字符 System.out.println("@".matches("[\\w]"));//false System.out.println("_".matches("[\\w]"));//true //验证取反 System.out.println("2".matches("[^0-9]")); System.out.println("a".matches("[^0-9]")); //空白字符 System.out.println(" ".matches("\\s")); System.out.println("\t".matches("\\s")); //{m,n}量词 System.out.println("123456".matches("[0-9]{11,11}")); System.out.println("123456".matches("[0-9]{11}")); System.out.println("13812345678".matches("[0-9]{11,11}")); //验证邮箱 System.out.println("aaaa3333@cc".matches("\\w+@\\w+\\.\\w+")); System.out.println("aaa@sjafd.coda".matches("\\w+@\\w+\\.\\w+")); //abc 出现1到多次 //()叫做分组,把括号内的内容作为一个整体来看待 String str1 = "abcabcabc"; str1.matches("abc+"); System.out.println(str1.matches("abc+"));//错误的正则,+只影响到c System.out.println(str1.matches("(abc)+"));//正确 //abc 或 def 出现1到多次,| 代表组内或者关系 System.out.println("defdef".matches("(abc|def)+")); } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- msql 正则表达式
- 正则表达式
- 插入排序
- 冒泡排序
- 堆排序