用例子来学习正则表达式
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- /**
- * 正则表达式:字符串的处理利器
- * @author kenan
- *
- */
- public class RegularExpressions {
- public static void main(String[] args) {
- // 在正则表达式中 . 代表一个字符
- // System.out.println("abc".matches("..."));
- // \d 代表一个数字:使用表达式进行匹配替换
- // System.out.println("ab12356c".replaceAll("\\d", "-"));
- //这个是我们平时的用法
- // System.out.println("ab12346c".replaceAll("123", "---"));
- //编译一个正则表达式
- // Pattern p = Pattern.compile("[a-z]{3}");
- // 匹配一个字符串 , 返回一个 Matcher 对象
- // Matcher m = p.matcher("abc");
- // System.out.println(m.matches());
- // . : 一个字符
- //* : 0或多个字符
- //+: 1或者多个
- //?:0 或者 1个
- // System.out.println("a".matches("."));
- // System.out.println("aa".matches("aa"));
- // System.out.println("aaaa".matches("a*"));
- // System.out.println("".matches("a*"));
- // System.out.println("aaa".matches("a?"));
- // System.out.println("".matches("a?"));
- // System.out.println("a".matches("a?"));
- // System.out.println("123456".matches("\\d{3,100}"));
- // System.out.println("12".matches("\\d{3,100}"));
- // System.out.println("192.168.0.aaa".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"));
- // System.out.println("192.168.0.2".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"));
- // System.out.println("192".matches("[0-2][0-9][0-9]"));
- // System.out.println("192".matches("[0-9]"));
- //范围匹配
- // System.out.println("a".matches("[abc]"));
- // System.out.println("a".matches("[^abc]"));
- // System.out.println("A".matches("[a-zA-Z1-9]"));
- // System.out.println("3".matches("[a-zA-Z1-9]"));
- // System.out.println("A".matches("[a-z]|[A-Z]"));
- // System.out.println("R".matches("[A-Z&&[RFG]]"));
- // 认识 \s \w \d \
- // \d 一个数字 [0-9]
- // \D 上面取反
- // \s 一个空字符 [ \t\n\r\f\x0B]
- // \S 上面取反
- // \w 一个字符[a-zA-Z_0-9]
- // \W 出了上面的字符以为的其他字符
- // \\ 代表 一个 \
- // System.out.println(" \n\r\t".matches("\\s{1,4}"));
- // System.out.println(" ".matches("\\S"));
- // System.out.println("a_8".matches("\\w{1,3}"));
- // System.out.println("abc888&^%".matches("[a-z]{1,3}\\d+[&^#%]+"));
- // System.out.println("\\".matches("\\\\"));
- // Posix Style
- // System.out.println("a".matches("\\p{Lower}"));
- //边界处理
- // ^ 在[ ] 里代表取反 在外面代表字符开头
- // $ 代表以什么结尾
- // \b代表 单词结束
- // System.out.println("hello sir".matches("^h.*"));
- // System.out.println("hello sir".matches(".*ir$"));
- // System.out.println("hello sirr".matches(".*ir$"));
- // System.out.println("hello sir".matches("^h[a-z]{1,3}o\\b.*"));
- // System.out.println("hellosir".matches("^h[a-z]{1,3}o\\b.*"));
- // System.out.println("hello sir".matches("^h[a-z]{1,3}o\\b.*"));
- // System.out.println("hello& sir".matches("^h[a-z]{1,3}o\\b.*"));
- // System.out.println("hello. sir".matches("^h[a-z]{1,3}o\\b.*"));
- //找出空白行
- // System.out.println(" \n".matches("^[\\s&&[^\\n]]*\\n$"));
- // System.out.println("\n".matches("^[\\s&&[^\\n]]*\\n$"));
- // System.out.println("soukenan@qq.com".matches("[\\w.-]+@[\\w.-]+\\.[\\w]+"));
- // matches from lookingat
- // Pattern p = Pattern.compile("\\d{3,5}");
- // String s = "123-45674-234-00";
- // Matcher m = p.matcher(s);
- // System.out.println(m.matches()); //false //从前往后匹配
- // m.reset(); // 把光标重置
- // System.out.println(m.find());//true //从当前的标志开始查找
- // System.out.println(m.start()+":"+m.end());
- // System.out.println(m.find()); //true 查找匹配的字串
- // System.out.println(m.start()+":"+m.end());
- // System.out.println(m.find()); //true
- // System.out.println(m.start()+":"+m.end());
- // System.out.println(m.find());//false
- //
- // System.out.println(m.lookingAt()); //true //从头开始看看 是否匹配
- // System.out.println(m.lookingAt()); //true
- // System.out.println(m.lookingAt()); //true
- // System.out.println(m.lookingAt()); //true
- //replacement 字符串的替换
- // Pattern p = null;
- // p = Pattern.compile("java");
- // p = Pattern.compile("java", Pattern.CASE_INSENSITIVE); //忽略大小写
- // Matcher m = p.matcher("java Java JaVa javA ,i love JAVA!");
- // while(m.find()){
- // System.out.println(m.group());
- // }
- // System.out.println(m.replaceAll("JAVA")); //把找到的匹配字符串转换成JAVA
- // StringBuffer buf = new StringBuffer();
- // int i =0;
- // while(m.find()){
- // i++;
- // if(i%2==0){
- // m.appendReplacement(buf, "java"); //偶数 转换成 java
- // }else{
- // m.appendReplacement(buf, "JAVA"); //奇数转换成 JAVA
- // }
- // }
- // m.appendTail(buf);//把尾部字符串添加上去
- // System.out.println(buf);
- //group 分组
- //() 这个是用来分组的
- Pattern p = Pattern.compile("(\\d{3,5})([a-z]{2})");
- String s = "123aa-3456bb-234cc-00";
- Matcher m = p.matcher(s);
- while(m.find()){
- System.out.println(m.group(1)+":"+m.group(2));
- }
- }
- }
转载于:https://blog.51cto.com/soukenan/1131428
用例子来学习正则表达式相关推荐
- java正则表达式课程_通过此免费课程学习正则表达式
java正则表达式课程 by Beau Carnes 通过博卡恩斯 通过此免费课程学习正则表达式 (Learn Regular Expressions with this free course) & ...
- 正则表达式学习日记_《学习正则表达式》笔记_Mr_Ouyang
正则表达式学习日记_<学习正则表达式>笔记_Mr_Ouyang 所属分类: 正则表达式学习日记 书名: 学习正则表达式 作者: Michael Fitzgerald 译者 ...
- 用Python学习正则表达式
转自:http://daydayup.is-programmer.com/posts/1200.html 用Python学习正则表达式 正则表达式 一般字符 []表示的字符类 {}表示重复 ^和$表示 ...
- 通过grep学习正则表达式
在Linux的学习当中,正则表达式是非常重要的部分,现在我想通过grep命令来解析和学习正则表达式,同时也能将grep的相关功能展示清楚. 从一个例子开始 cat test.txt grep 'a l ...
- 【推荐】使用Ultrapico Expresso学习正则表达式
推荐理由 Ultrapico Expresso是我工作中经常使用的一个非常强大的正则表达式构建.测试以及代码生成工具.它能够对你构建的正则表达式进行解析.验证,并输出解析结果,提供性能测试工具,支持C ...
- (正则表达式学习)正则表达式语法
以前一直想好好的系统的学习正则表达式,都没有按照自己的意愿去做.这次一定要很抓一下正则的学习.先把MSDN的正则表达式语法帖出来,方便自己查找.呵呵. 字符 说明 \ 将下一字符标记为特殊字符.文本. ...
- 通过rxjs的一个例子, 来学习SwitchMap的使用方法
switchMap相关文章 rxjs里switchMap operators的用法 通过rxjs的一个例子, 来学习SwitchMap的使用方法 rxjs switchMap的实现原理 rxjs的ma ...
- 一个简单的例子,学习自定义注解和AOP
转载自 一个简单的例子,学习自定义注解和AOP 记得今年年初刚开始面试的时候,被问的最多的就是你知道Spring的两大核心嘛?那你说说什么是AOP,什么是IOC?我相信你可能也被问了很多次了. 1 ...
- 蜗牛学习正则表达式 教程 工具一网打尽
蜗牛学习正则表达式系列教程,不可多得的资料...... 转载于:https://www.cnblogs.com/qnfng/archive/2009/06/19/1506391.html
- 手机号正则_一起刷题学习正则表达式
在我最开始学习正则表达式的时候看到一堆符号简直头晕,所以很长一段时间我都是百度一下某某正则怎么写,比如:匹配所有手机号码的正则,但是有时候工作中碰到的一些问题网上搜不到,这就尴尬了,后面还是逼着自己花 ...
最新文章
- mysql 5.7配置多线程复制,MySQL5.7复制功能实战,基于事务的复制,多源复制和多线程复制配置...
- 可以接受失败,但不选择放弃
- ML之xgboost:绘制xgboost的二叉树graphviz的两种方法代码实现
- Python必备收藏!Pycharm 常用快捷键方式!让鼠标离手操作
- 工业以太网交换机的概念及其主要功能介绍
- 计算机培训开场语,辅导班家长会主持词开场白
- 云栖独栋别墅_云栖没有玫瑰
- PreparedStatement对象
- Windows Internet Explorer 7 正式发布
- bzoj 4556 字符串
- ubuntu下安装ros出现“无法下载-package.ros.org中某个包-校验和不符”的解决方法...
- 基于mfc 组态软件_组态软件有哪些?InTouch、WinCC、组态王?
- vue 中 使用 clipboard 复制内容第一次点击两次才能成功问题修改
- WebService之CXF框架
- 2021,自动驾驶的“五代十国”
- 如何成为一个优秀的测试工程师
- Oracle ASM理论及实践介绍
- Podman使用详解
- linux 32位浏览器下载,Chrome 浏览器32位、64位下载地址大全
- 正大国际期货:国际期货中的八条看盘技巧!
热门文章
- 原型模式(Prototype)解析例子
- overcommit_memory 内核参数
- Android UI学习之---Button
- FRR BGP协议分析4 -- 路由更新(1)
- ffmpeg + rtp介绍
- FFmpeg 基本用法
- python 图片对比文件夹_Python挑选文件夹里宽大于300图片的方法
- 水下清淤机器人_国产第五代箱涵清淤机器人真机亮相上海城市管网展恒通环境展位...
- 网络编程----观察进程的启动与停止
- 201约花鸟画 考c语言试题,全国计算机二级C语言上机100题..doc