正则表达式在Java中应用的三种典型场合:验证,查找和替换
正则式在编程中常用,总结在此以备考:
package regularexp; import java.util.regex.Matcher;
import java.util.regex.Pattern; public class RegUsages {
// 验证例子
private static boolean verify(String code) {
final String patternStr = "\\d+";
return Pattern.matches(patternStr, code);
}
// 查找例子
private static void search() {
Pattern pattern = Pattern.compile("m(o+)n", Pattern.CASE_INSENSITIVE); Matcher matcher=pattern.matcher("Sun Earth moon mooon Mon mooooon Mooon Mars");
while(matcher.find()) {
System.out.println(String.format("%s (%d~%d)", matcher.group(0),matcher.start(),matcher.end()));
}
}
// 更替例子1
private static void replace1() {
String str = "10元 1000人民币 10000元 100000RMB";
str = str.replaceAll("(\\d+)(元|人民币|RMB)", "$1圆");
System.out.println(str);
}
// 更替例子2
private static void replace2() {
Pattern p = Pattern.compile("m(o+)n", Pattern.CASE_INSENSITIVE); Matcher m = p.matcher("Sun Earth moon mooon Mon mooooon Mooon Mars");
StringBuffer sb = new StringBuffer(); boolean result = m.find(); while (result) {
m.appendReplacement(sb, "Moon");
result = m.find();
}
m.appendTail(sb); System.out.println("Result=" + sb.toString());
} public static void main(String[] args) {
System.out.println(String.format("601857 %s a stock code.",verify("601857")?"is":"isn't"));
search();
replace1();
replace2();
}
}
输出:
601857 is a stock code.
moon (10~14)
mooon (15~20)
Mon (21~24)
mooooon (25~32)
Mooon (33~38)
10圆 1000圆 10000圆 100000圆
Result=Sun Earth Moon Moon Moon Moon Moon Mars
--2020-03-06--
正则表达式在Java中应用的三种典型场合:验证,查找和替换的更多相关文章
- java中 this 的三种用法
		
Java中this的三种用法 调用属性 (1)this可以调用本类中的任何成员变量 调用方法(可省略) (2)this调用本类中的成员方法(在main方法里面没有办法通过this调用) 调用构造方法 ...
 - Java中对象的三种状态
		
Java中的对象的三种状态是和垃圾回收紧密相关的,因此有必要深究. 状态一:可触及态:从根节点开始,可以搜索到这个对象,也就是可以访问到这个对象,也有人将其称为可达状态. 状态二:可复活态:从根节点开 ...
 - java中线程的三种实现方式
		
一下记录下线程的3中实现方式:Thread,Runnable,Callable 不需要返回值时,建议使用Runnable:有返回值时建议使用Callable 代码如下所示: package com.f ...
 - Java中Map的三种遍历方法
		
Map的三种遍历方法: 1. 使用keySet遍历,while循环: 2. 使用entrySet遍历,while循环: 3. 使用for循环遍历. 告诉您们一个小秘密: (下↓面是测试代码,最爱看 ...
 - Java中Singleton的三种实现方式解析
		
一.什么是Singleton? <设计模式>的作者.Eclipse和 Junit 的开发者 Erich Gamma 在它的理论体系中将 Singleton 定义为仅仅被实例化一次的类.在当 ...
 - Java中配置文件的三种配置位置及读取方式
		
XML 和properties properties: 1.存放于src根目录下 //获取到同包下的资源文件,将其转换成流对象 //InputStream is= PropertiesDemo.cla ...
 - JAVA中this的三种用法的详解
		
this关键字必须放在非静态方法里面 this关键字代表自身,在程序中主要的使用用途有以下几个方面: ? 使用this关键字引用成员变量 ? 使用this关键字在自身构造方法内部引用其它构造方法 ? ...
 - 正则表达式在Java中的使用
		
目录 介绍 从简单例子认识正则表达式匹配 Java中对正则表达式的支持(各种语言有相应的实现) 初步认识 . + * ? 范围 认识\s \w \d - 下面介绍数字和字母的正则表达, 这是编程中使用 ...
 - java 获取随机数的三种方法
		
方法1(数据类型)(最小值+Math.random()*(最大值-最小值+1))例:(int)(1+Math.random()*(10-1+1))从1到10的int型随数 方法2获得随机数for (i ...
 
随机推荐
- 网络协议: TCP/IP 和UDP/IP
			
网络协议: TCP/IP 和UDP/IP TCP/IP TCP/IP(Transmission Control Protocol/Internet Protocol)是一种可靠的网络数据传输控制协议. ...
 - week4:周测错题
			
4.如何在类外,给对象动态添加绑定方法 import types def qingtianzhu(obj,name): print("请我叫我一柱擎天,简称{},颜色是{}".fo ...
 - DB2 创建存储过程保存:XX 后面找到异常标记 "END-OF-STATEMENT"。
			
存储过程最后一行加结束符@: 然后执行:db2 -td@ -vf /home/WGJ/proc_data_calculate.sql [slsadmin@localhost /]$ db2 -td@ ...
 - C#LeetCode刷题-极小化极大
			
极小化极大篇 # 题名 刷题 通过率 难度 375 猜数字大小 II 23.4% 中等 464 我能赢吗 25.5% 中等 486 预测赢家 40.4% 中等 843 猜猜这个单词 2 ...
 - C#设计模式之10-外观模式
			
外观模式(Facade Pattern) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/407 访问. 外观模式属于结构 ...
 - C#LeetCode刷题之#219-存在重复元素 II(Contains Duplicate II)
			
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3704 访问. 给定一个整数数组和一个整数 k,判断数组中是否存在 ...
 - MongoDB学习2:MongoDB的基本操作
			
以下都是基于MongoShell进行操作 1.使用insert进行插入操作 示例: db.<集合>.insertOne(<JSON对象>) db.<集合>.ins ...
 - next()与nextLine()的区别
			
abc def ghij kl mno pqr st uvw xyz 你用next(),第一次取的是abc,第二次取的是def,第三次取的是ghij 你用nextLine(),第一次取的是abc de ...
 - element-ui 格式化树形数组在table组件中展示(单元格合并)
			
最近做的项目涉及到很多单元格合并问题,element-ui组件对于单元格合并的处理虽然很灵活,但是需要事先计算好每个单元格合并的rowspan和colspan,直接在span-method属性中计算实 ...
 - 手把手mc开服教学(内置开服核心)
			
QQ交流群:1125669835 mc开服教程 首先我们需要下载一个开服核心,然后把服务器核心放在一个空文件夹里(这是我的开服核心) 然后再打开(感jio这是废话,要耐心等待......) 然后你会发 ...