java 正则表达式高级篇(四种常用的处理方式:匹配 分割 替代 获取)

package test;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 正则表达式
 * 正则表达式 的用法主要是4种方面的使用
 * 匹配,分割,替换,获取.
 * 用一些简单的符号来代表代码的操作
 * @author cyc
 *
 */
public class Rex {
	public static void main(String[] args) {
		//针对字符串处理
		Rex reg = new Rex();
		//校验qq的reg正则表达式
		//这里的\w 是指的是[a-zA-Z0-9],还有一个重要的是?,*.+这三个分别
		//?表示出现1次或者1次都没有,
		//+表示出现1次或者n次,
		//*表示出现0次或者n次,
		//还有些特殊的写法X{n}恰好n次X{n,}至少n次,X{n,m}n次到m次,
		String mathReg = "[1-9]\\d{4,19}";
		String divisionReg = "(.)\\1+";
		//\\b 是指的边界值
		String getStringReg = "\\b\\w{3}\\b";
		//字符串匹配(首位是除0 的字符串)
		reg.getMatch("739295732",mathReg);
		reg.getMatch("039295732",mathReg);
		//字符串的替换
		//去除叠词
		reg.getReplace("12111123ASDASDAAADDD",divisionReg,"$1");
		//字符串的分割
		//切割叠词,重复的
		//这里要知道一个组的概念(.)\\1第二个和第一个至相同
		reg.getDivision("aadddddasdasdasaaaaaassssfq",divisionReg);
		//字符串的获取
		//现在获取三个字符串取出
		reg.getString("ming tian jiu yao fangjia le ",getStringReg);
	}
	/**
	 * 获取查询的字符串
	 * 将匹配的字符串取出
	 */
	private void getString(String str, String regx) {
		//1.将正在表达式封装成对象Patten 类来实现
		Pattern pattern = Pattern.compile(regx);
		//2.将字符串和正则表达式相关联
		Matcher matcher = pattern.matcher(str);
		//3.String 对象中的matches 方法就是通过这个Matcher和pattern来实现的。

		System.out.println(matcher.matches());
		//查找符合规则的子串
		while(matcher.find()){
			//获取 字符串
			System.out.println(matcher.group());
			//获取的字符串的首位置和末位置
			System.out.println(matcher.start()+"--"+matcher.end());
		}
	}
	/**
	 * 字符串的分割
	 */
	private void getDivision(String str, String regx) {
		String [] dataStr = str.split(regx);
		for(String s:dataStr){
			System.out.println("正则表达式分割++"+s);
		}
	}
	/**
	 * 字符串的替换
	 */
	private void getReplace(String str, String regx,String replaceStr) {
		String stri = str.replaceAll(regx,replaceStr) ;
		System.out.println("正则表达式替换"+stri);
	}
	/**
	 * 字符串处理之匹配
	 * String类中的match 方法
	 */
	public void getMatch(String str, String regx){
		System.out.println("正则表达匹配"+str.matches(regx));
	}
}

今日重新有写了个正则表达式的代码,颇有体会。再次跟大家分享一下我的经验,基本上这四种的操作是日常写程序经常会使用的技术。关注一下本人的微博,我会继续写下去的,感谢大家的观看。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-23 22:04:39

java 正则表达式高级篇(四种常用的处理方式:匹配 分割 替代 获取)的相关文章

JAVA正则表达式高级用法(分组与捕获)

正则表达式在字符串处理中经常使用,关于正则简单的用法相信有一点程序基础的人都懂得一些,这里就不介绍简单基础了.这里主要讲解一下在JAVA中实现了的正则的高级用法-分组与捕获.对于要重复单个字符,非常简单,直接在字符后卖弄加上限定符即可,例如 a+ 表示匹配1个或一个以上的a,a?表示匹配0个或1个a.这些限定符如下所示: X ?     X ,一次或一次也没有X *     X ,零次或多次X +     X ,一次或多次X { n }     X ,恰好 n 次X { n ,}     X ,

javaservlet处理四种常用api请求get,put,post,delete

一般在网站搭建中servlet只需处理post,get请求便足已.本篇注重使用javaweb编写restful风格api,在servlet中对四种常用请求进行处理. 在api中对于一个请求要做的通常是提取header参数,提取携带数据(post,put).在这里已post为例来说明用法. 下面是发起的post请求,用python(很简单)写的,该请求既有自定义header参数Bearer,也有携带数据bodys里的内容 import json import requests taken='YWM

详解Java解析XML的四种方法(转)

XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML.本文将详细介绍用Java解析XML的四种方法. XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便.对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM(Document Object Model),DTD(Document Type Definition),SAX(Simple API for XML),XSD(Xm

Java学习之道:详解Java解析XML的四种方法

XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便.对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM(Document Object Model),DTD(Document Type Definition),SAX(Simple API for XML),XSD(Xml Schema Definition),XSLT(Extensible Stylesheet Language Transform

【Java】详解Java解析XML的四种方法

XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML.本文将详细介绍用Java解析XML的四种方法. AD: XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便.对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM(Document Object Model),DTD(Document Type Definition),SAX(Simple API for XML),XS

java线程池和五种常用线程池的策略使用与解析

java线程池和五种常用线程池策略使用与解析 一.线程池 关于为什么要使用线程池久不赘述了,首先看一下java中作为线程池Executor底层实现类的ThredPoolExecutor的构造函数 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory th

java中存在的四种引用

Java开发中存在四种引用,它们分别是: 强引用(StrongReference) 强引用是使用最普遍的引用.如果一个对象具有强引用, 那垃圾回收器绝不会回收它.当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题. 软引用(SoftReference)如果一个对象只具有软引用,则内存空间足够, 垃圾回收器就不会回收它:如果内存空间不足了,就会回收这些对象的内存. 只要垃圾回收器没有回收它,该对象就可以被

JAVA实现单例模式的四种方法和一些特点

JAVA实现单例模式的四种方法和一些特点,需要的朋友可以参考一下 一.饿汉式单例类 复制代码 代码如下: public class Singleton  {      private Singleton(){ } private static Singleton instance = new Singleton(); private static Singleton getInstance(){          return instance;      }  } 特点:饿汉式提前实例化,没有

详解Java解析XML的四种方法

(1)DOM解析 DOM是html和xml的应用程序接口(API),以层次结构(类似于树型)来组织节点和信息片段,映射XML文档的结构,允许获取 和操作文档的任意部分,是W3C的官方标准 [优点] ①允许应用程序对数据和结构做出更改. ②访问是双向的,可以在任何时候在树中上下导航,获取和操作任意部分的数据. [缺点] ①通常需要加载整个XML文档来构造层次结构,消耗资源大. [解析详解] ①构建Document对象: DocumentBuilderFactory dbf = DocumentBu