正则表达式在java程序中的使用
package com.boco;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TestReg {
/**
* 验证传入的字符串是否整个匹配正则表达式
* @param regex 正则表达式
* @param decStr 要匹配的字符串
* @return 若匹配,则返回true;否则,返回false
*/
public static boolean validate(String regex,String decStr){
//表达式对象 Pattern.CASE_INSENSITIVE表示 启用不区分大小写的匹配
Pattern p = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);
//创建Matcher对象
Matcher m = p.matcher(decStr);
//是否完全匹配
boolean flag = m.matches();//该方法尝试将整个输入序列与该模式匹配
return flag;
}
/**
* 验证传入的字符串是否有子字符串匹配正则表达式
* @param regex 正则表达式
* @param decStr 要匹配的字符串
* @return 若匹配,则返回true;否则,返回false
*/
public static boolean validate2(String regex,String decStr){
//表达式对象 Pattern.CASE_INSENSITIVE表示 启用不区分大小写的匹配
Pattern p = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);
//创建Matcher对象
Matcher m = p.matcher(decStr);
//是否完全匹配
boolean flag = m.find();//该方法扫描输入序列以查找与该模式匹配的下一个子序列
return flag;
}
/**
* 给定的字符串中是否有符合给定正则表达式的子字符串,返回匹配的第一个子字符串
* @param regex 正则表达式
* @param decStr 要匹配的字符串
* @return 返回匹配的第一个子字符串,否不匹配.返回null
*/
public static String search(String regex,String decStr){
//表达式对象 Pattern.CASE_INSENSITIVE表示 启用不区分大小写的匹配
Pattern p = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);
//创建Matcher对象
Matcher m = p.matcher(decStr);
//是否找到匹配
boolean flag = m.find();//该方法扫描输入序列以查找与该模式匹配的下一个子序列
String findString = "";
if(flag){
findString =m.group();
String findString0 = m.group(0);//group(),group(0)返回符合整个表达式的子字符串
String findString1 = m.group(1);//group(1)返回符合整个表达式的子字符串中匹配第一个表达式的子字符串
System.out.println(findString1);
}
return findString;
}
/**
* 返回给定字符串中匹配给定正则表达式的所有子字符串
* @param regex 正则表达式
* @param decStr 要匹配的字符串
* @return 返回所有匹配给定正则表达式的所有子字符串
*/
public static List searchSubStr(String regex,String decStr){
Pattern p = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(decStr);
List<String> list = new ArrayList<String>();
while(m.find()){
list.add(m.group());
}
for(String str:list){
System.out.println(str);
}
return list;
}
/**
* 替换给定字符串中匹配正则表达式的子字符串
* @param regex 正则表达式
* @param decStr 要匹配的字符串
* @param replaceStr 将符合正则表达式的子字符串替换为该字符串
* @return 返回替换以后新的字符串
*/
public static String replace(String regex,String decStr,String replaceStr){
Pattern p = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(decStr);
//替换
String newString = m.replaceAll(replaceStr);
System.out.println(newString);
return newString;
}
public static void testSplit(){
String str ="abc5Adefghi7Ajklmn";
//分割
String[] strs = str.split("(\\d)A");
for(int i=0;i<strs.length;i++){
System.out.println(strs[i]);
}
}
public static void main(String[] args) {
//replace("\\d", "dsfd;sa;ksd12a34b567c890d88e999f", "*");
//System.out.println(validate("\\d+","3344455aa"));
//System.out.println(validate2("\\d+","3344455aa"));
//System.out.println(searchSubStr("(\\d+)([a-z]+)", "334455aa-2211aa--2255bb"));
testSplit();
}
}
正则表达式在java程序中的使用的更多相关文章
- Linux上从Java程序中调用C函数
原则上来说,"100%纯Java"的解决方法是最好的,但有些情况下必须使用本地方法.特别是在以下三种情况: 需要访问Java平台无法访问的系统特性和设备: 通过基准测试,发现Jav ...
- 在网页程序或Java程序中调用接口实现短信猫收发短信的解决方案
方案特点: 在网页程序或Java程序中调用接口实现短信猫收发短信的解决方案,简化软件开发流程,减少各应用系统相同模块的重复开发工作,提高系统稳定性和可靠性. 基于HTTP协议的开发接口 使用特点在网页 ...
- 如何在java程序中调用linux命令或者shell脚本
转自:http://blog.sina.com.cn/s/blog_6433391301019bpn.html 在java程序中如何调用linux的命令?如何调用shell脚本呢? 这里不得不提到ja ...
- Java程序中调用Python脚本的方法
在程序开发中,有时候需要Java程序中调用相关Python脚本,以下内容记录了先关步骤和可能出现问题的解决办法. 1.在Eclipse中新建Maven工程: 2.pom.xml文件中添加如下依赖包之后 ...
- 在java程序中访问windows有用户名和密码保护的共享目录
在java程序中访问windows有用户名和密码保护的共享目录 Posted on 2015-11-20 14:03 云自无心水自闲 阅读(3744) 评论(0) 编辑 收藏 --> Jav ...
- java程序中默认浮点形值常量是什么类型的?如何区分不同类型的浮点型整数值常量?
java程序中默认浮点形值常量是什么类型的 默认的所有的浮点型数值都是double型
- java程序中默认整形值常量是什么类型的?如何区分不同类型的整型数值常量?
java程序中默认整形值常量是什么类型的?如何区分不同类型的整型数值常量? 整数值默认就是int类型,只有在数值常量后面加“L”或“l”才表明该常量是long型
- java程序中获取kerberos登陆hadoop
本文由作者周梁伟授权网易云社区发布. 一般我们在使用kbs登陆hadoop服务时都直接在shell中调用kinit命令来获取凭证,这种方式简单直接,只要获取一次凭证之后都可以在该会话过程中重复访问.但 ...
- Derby安装,创建数据库,在Java程序中使用Derby
1,下载并安装Derby: 下载地址:http://db.apache.org/derby /derby_downloads.html,下载最新版本. 我用的是10.5.3.0. 解压缩到任意文件夹, ...
随机推荐
- IOS Number 处理(int-->NSNumber,NSNumber-->nsinteger,string -->double,CGFloat --> dobule)
1 小结: 1)int-->NSNumber:numberWithInt 2)NSNumber-->nsinteger:integerValue 3)string -->double ...
- 《DSP using MATLAB》示例Example7.5
代码: h = [-4, 1, -1, -2, 5, 6, 6, 5, -2, -1, 1, -4]; M = length(h); n = 0:M-1; [Hr, w, b, L] = Hr_Typ ...
- 《DSP using MATLAB》示例 Example 6.25
代码: % x = [-0.9, 0.81]; [y, L, B] = QCoeff(x, 3) % Unquantized parameters r = 0.9; theta = pi/3; a1 ...
- callback回调函数-python
链接:http://www.zhihu.com/question/19801131/answer/27459821来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 编程分 ...
- CMDB
一.CMDB CMDB --Configuration Management Database 配置管理数据库, CMDB存储与管理企业IT架构中设备的各种配置信息,它与所有服务支持和服务交付流程都紧 ...
- ballerina 学习七 object 创建&& 初始化
在 ballerina 总中object 是一个包含public private 类型字段同时包含函数,需要开发人员进行自定义类型以及行为 说白了,就是类似面向对象的class 基本使用 代码 imp ...
- Toxiproxy 网络情况模式代理
1. 介绍 Toxiproxy is a framework for simulating network conditions. It's made specifically to work in ...
- bzoj2748(HAOI2018)音量调节
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2748 水得不想写.别忘了-1. #include<iostream> #incl ...
- PhpStorm 2017.3 版本在 Mac 系统 macOS High Sierra 版本 10.13.3 中运行很卡顿
最近升级了系统,发现PHPStorm 运行一会儿就卡顿起来了,按网上的方法加大内存配置也是没效果: 运行一会儿照样卡顿,接着一会儿就要内存溢出了挂掉了: 想着最近只有升级过操作系统,并没有升级JDK等 ...
- MongoDB在windows平台分片集群部署
本文转载自:https://www.cnblogs.com/hx764208769/p/4260177.html 前言-为什么我要使用mongodb 最近我公司要开发一个日志系统,这个日志系统包括很多 ...