`
zhuobinzhou
  • 浏览: 133226 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类

String、Pattern、Matcher——java正则

阅读更多

1、若想要将正则表达式视为一个对象来重复使用,就可以使用Pattern的静态方法compile()进行编译。compile()方法会返回一个Pattern实例。这个实例代表正则表达式,以后就可以重复使用这个Pattern实例的matcher()方法来返回一个Matcher实例,该实例代表符合正则式的实例。

 

/**
 * 作者:阳光的味道
 * 功能:Patrern、Matcher示例
 * 日期:2010/11/08
 * */

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

public class TestPatterAndMacher {

	public static void main(String[] args) {
		//通过compile()方法创建Pattern实例
		Pattern pattern=Pattern.compile("java");
		//通过match()创建Matcher实例
		Matcher matcher=pattern.matcher("java Java java JAVA jAva");
		while (matcher.find())//查找符合pattern的字符串
		{
			System.out.println("The result is here :" + 
					matcher.group() + "\n" + "It starts from "
					+ matcher.start() + " to " + matcher.end() + ".\n");
		}
	}
}

 

输出结果:

The result is here :java
It starts from 0 to 4.

 

The result is here :java
It starts from 10 to 14.

在上面的代码Pattern pattern=Pattern.compile("java")改为Pattern pattern=Pattern.compile("java",Pattern.CASE_INSENSITIVE)。此时可以不区分大小写地查找。

 

/**
 * 作者:阳光的味道
 * 功能:Patrern、Matcher示例
 * 日期:2010/11/08
 * */

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

public class TestPatterAndMacher {

	public static void main(String[] args) {
		//通过compile()方法创建Pattern实例
		Pattern pattern=Pattern.compile("java",Pattern.CASE_INSENSITIVE);
		//通过match()创建Matcher实例
		Matcher matcher=pattern.matcher("java Java java JAVA jAva");
		while (matcher.find())//查找符合pattern的字符串
		{
			System.out.println("The result is here :" + 
					matcher.group() + "\n" + "It starts from "
					+ matcher.start() + " to " + matcher.end() + ".\n");
		}
	}
}

 

结果:

 

 

 The result is here :java
It starts from 0 to 4.

The result is here :Java
It starts from 5 to 9.

The result is here :java
It starts from 10 to 14.

The result is here :JAVA
 It starts from 15 to 19.

The result is here :jAva
It starts from 20 to 24.


忽略大小的写法也可以有以下简单方法:

 

/**
 * 作者:阳光的味道
 * 功能:Patrern、Matcher示例
 * 日期:2010/11/08
 * */

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

public class TestPatterAndMacher {

	public static void main(String[] args) {
		//通过compile()方法创建Pattern实例
		Pattern pattern = Pattern.compile("java");
		//通过match()创建Matcher实例
		Matcher matcher=pattern.matcher("java Java java JAVA jAva");
		while (matcher.find())//查找符合pattern的字符串
		{
			System.out.println("The result is here :" + 
					matcher.group() + "\n" + "It starts from "
					+ matcher.start() + " to " + matcher.end() + ".\n");
		}
		System.out.println("Java".matches("(?i)(java)"));
	}
}
/*out:
The result is here :java
It starts from 0 to 4.

The result is here :java
It starts from 10 to 14.

true*/

 

 

 

 

/**
 * 作者:阳光的味道
 * 功能:Patrern、Matcher示例
 * 日期:2010/11/08
 * */

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

public class TestPatterAndMacher {

	public static void main(String[] args) {
		//通过compile()方法创建Pattern实例
		Pattern pattern = Pattern.compile("java",Pattern.CASE_INSENSITIVE);
		//通过match()创建Matcher实例
		Matcher matcher=pattern.matcher("java Java java JAVA jAva avafdsafdsaf");
		StringBuffer buffer=new StringBuffer();
		int i=0;
		while (matcher.find())
		{
			i++;
			if(i%2==0)
			{	//偶数项替换为JAVA
				matcher.appendReplacement(buffer, "JAVA");
			}
			else {	//基数项替换为java
				matcher.appendReplacement(buffer, "java");
			}
		}
		matcher.appendTail(buffer);//将剩余的不匹配部分也追加到buffer中
		System.out.println(buffer);
	}
}
/*out:
	java JAVA java JAVA java avafdsafdsaf

*/

 

 

 

分享到:
评论
1 楼 niuqiang2008 2011-02-26  
学习了 ...

相关推荐

    java正则表达式实例

    Matcher matcher = pattern.matcher(str); while(matcher.find()) { String group = matcher.group(); String res = group.substring(1, group.length() - 1); System.out.println(group + ":" + res); } }

    Java正则表达式学习教程

    Java正则表达式的类在 java.util.regex 包中,包括三个类:Pattern,Matcher 和 PatternSyntaxException。 Pattern对象是正则表达式的已编译版本。他没有任何公共构造器,我们通过传递一个正则表达式参数给公共静态...

    JAVA正则表达式 Pattern和Matcher

    它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表现模式。 Matcher 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。 首先一个Pattern实例...

    java正则表达式获取大括号小括号内容并判断数字和小数亲测可用

    获取大括号小括号内容 项目开发用到了,暂做个简单记录 private static String regex = "\\{([^}]*)\\}";//匹配大括号 private static String regexx = "\\(([^}]*)\\)";... Matcher matcher = compile.matcher(daku

    正则表达式大全案例分析案例介绍

    Pattern类用于编译正则表达式,而Matcher类则用于在文本中进行匹配。 String regex = "pattern"; String input = "string"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(input);...

    Java 正则表达式学习总结和一些小例子

    在java中,通过适当命名的Pattern类可以容易确定String是否匹配某种模式.模式可以象匹配某个特定的String那样简单,也可以很复 杂,需要采用分组和字符类,如空白,数字,字母或控制符.因为Java字符串基于统一字符

    Java正则表达式提取字符的方法实例

    import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String[] args) { String s = A876X; // 把要匹配的字符串写成正则表达式,然后要提取的字符使用...

    一个java正则表达式工具类源代码.zip(内含Regexp.java文件)

    * Summary of regular-expression constructs 正则表达式结构简介: * Construct Matches * Characters 字符: * x The character x x 字符 x * \\ The ...

    Java正则表达式-详解(附相关真题)

    Java.util.regex包支持3.1 Pattern类(常用方法)3.2 Matcher类(常用方法)4. 简单运用4.1 邮箱格式验证4.2 SQL语句内容抽取4.3 数字验证4.4 匹配分组加多次匹配5. 真题5.1 压缩算法5.2 音节判断5.3 正则表达式匹配(剑...

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

    import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 正则表达式 * 正则表达式 的用法主要是4种方面的使用 * 匹配,分割,替换,获取. * 用一些简单的符号来代表代码的操作 * @author cyc...

    java正则表达式验证函数

    代码如下:/** * 验证 正则表达式 * * @author zhujie regex 正则表达式 value 所属字符串 * @return boolean */ public static boolean regex(String regex, String value) { Pattern p = Pattern.compile(regex);...

    正则表达式

    Pattern对象是正则表达式编译后在内存中的表示形式,因此,正则表达式字符串必须先编译为Pattern对象,然后再利用该Pattern对象创建对应的Matcher对象,执行匹配所涉及的状态保留在Matcher对象中,多个Matcher对象可...

    正则表达式去除中括号(符号)及里面包含的内容

    例子:颜色:粉色[10] 尺码:S[5] 去掉[ ]及内容: preg_replace(/\[.*\]/, '', ...import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String[] args) {

    Java正则表达式提取html纯文本

    import java.util.regex.Matcher; import java.util.regex.Pattern; public class TestReg { static String reg = "<[a-zA-Z]+.*?>([sS]*?)</[a-zA-Z]*>"; public static void main(String[] args) { ...

    Java 使用正则表达式对象实现正则的获取功能

    使用的是用正则对象Pattern 和匹配器Matcher。 用法: 范例: Pattern p = Pattern.compile("a*b"); Matcher m = p.matcher("aaaaab"); boolean b = m.matches(); 步骤: 1,先将正则表达式编译成正则对象。...

    正则表达式测试工具

    import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing....

    通过Java正则表达式去掉SQL代码中回车换行和多余空格

    代码如下: public static void main(String[] args) { String ... String sql2 = Pattern.compile(” {2,}”).matcher(s).replaceAll(” “); String sql3 = s.replaceAll(” {2,}”,” “); String sql4 = sql.repla

    Java用正则对字符串进行处理并判断是否能转为数字

    import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @author: gznc_pcc * @date:2018年6月1日 10:50:38 * @version : * */ class Main { public static void main(String[] args) { ...

    java统计字符串出现次数算法--StringCounter(算法源码)

    import java.util.regex.Matcher; import java.util.regex.Pattern; public class StringCounter { /** * 正则统计字符串出现次数 * * @param source * @param regexNew * @return int */ public ...

    java解析给定url

    Matcher matcher = pattern.matcher(line); while(matcher.find()) { String group = matcher.group(); resSet.add(group); } return resSet; } private void write2file() { BufferedWriter bw = null;...

Global site tag (gtag.js) - Google Analytics