`
zhuobinzhou
  • 浏览: 136605 次
  • 性别: 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 Pattern Matcher的理解简记

    Java中的Pattern和Matcher是正则表达式的核心工具类,它们在处理字符串匹配和模式查找时起着关键作用。本文将深入解析这两个类的功能、用法以及相关知识点。 首先,Pattern类是Java.util.regex包下的一个类,它代表...

    常用java正则表达式

    接着,定义了一个名为`SocialSecurityNumberValidator`的类,在主方法中使用`Pattern.compile`编译正则表达式,并使用`matcher.matches`来检查字符串是否与给定的模式匹配。 通过上述知识点的学习,读者可以了解到...

    JAVA正则表达式--Pattern和Matcher

    ### JAVA正则表达式——Pattern和Matcher详解 #### 一、引言 随着JDK 1.4的发布,Java终于内置了自己的正则表达式API,这对于Java开发者来说无疑是个福音,意味着不再需要依赖第三方库就能高效地处理文本数据。Java...

    java 正则匹配所有 {},并取出所有符合的字符串。

    首先,我们需要了解Java中处理正则表达式的相关类,如`java.util.regex.Pattern`和`java.util.regex.Matcher`。`Pattern`类用于编译正则表达式,而`Matcher`类则执行实际的匹配操作。 1. **创建正则表达式**: 要...

    Java正则表达式 Java 正则表达式

    - `java.lang.String`:提供了`matches()`方法,可以直接对字符串进行正则匹配。 - `java.util.regex.Pattern`:编译正则表达式为模式对象,用于后续的匹配操作。 - `java.util.regex.Matcher`:与Pattern对象...

    Java正则表达式Pattern和Matcher原理详解

    除了上述提到的`Pattern`和`Matcher`类,Java的`String`类也提供了`split`方法,可以按照正则表达式来分割字符串。比如,`String[] str = p.split("好456456像:0532214是")`会根据数字来分割给定的字符串,返回一个...

    java正则表达式Pattern,Matcher

    ### Java正则表达式Pattern与Matcher详解 #### 一、Java正则表达式的概述 在Java编程语言中,正则表达式(Regular Expression)是一种强大的文本处理工具,它能够帮助开发者进行复杂的字符串搜索和替换操作。Java...

    java 正则表达式应用jar包 regex-smart.jar

    在Java中,主要通过Pattern、Matcher和Pattern类来操作正则表达式。 1. **Pattern类**:这是正则表达式的核心,用于编译正则表达式并创建模式对象。一旦编译完成,该模式可以多次使用,提高了效率。例如: ```java...

    使用Java正则表达式实现一个简单的身份证号码验证

    Java提供了强大的正则表达式支持,主要通过`java.util.regex`包中的`Pattern`和`Matcher`类来实现。`Pattern`类用于编译正则表达式字符串,而`Matcher`类用于执行与字符串的匹配操作。 #### 三、身份证号码的格式...

    Java 正则表达式库

    在Java中,我们通常使用`Pattern`和`Matcher`类来处理正则表达式。首先,`Pattern`类负责编译正则表达式模式,然后创建`Matcher`对象来应用这个模式到具体字符串上。例如: ```java import java.util.regex.*; ...

    怎么利用Java正则表达式换模板

    在Java中,我们可以使用`java.util.regex`包中的`Pattern`和`Matcher`类来实现字符串的匹配与替换。以下是一个详细解释如何利用Java正则表达式进行模板替换的过程。 1. **理解正则表达式** 正则表达式(Regular ...

    JAVA正则表达式 Pattern和Matcher

    `java.util.regex`包提供了`Pattern`和`Matcher`两个核心类,它们协同工作,使得开发者能够利用正则表达式进行复杂的字符串操作。 `Pattern`类是正则表达式的核心,它将文本模式编译成一个内部表示,以便高效地执行...

    Java使用正则表达式提取XML节点内容的方法示例

    为了帮助开发者更好地掌握Java正则表达式技术,我们提供了一系列的Java正则表达式技巧大全,包括《Java正则表达式技巧大全》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧...

    JAVA正则表达式Pattern和Matcher

    JAVA的正则表达式主要通过Pattern和Matcher两个核心类实现。Pattern用于编译正则表达式并存储模式,而Matcher则是执行实际匹配操作的对象。通过不同的方法,如matches、split和find,我们可以对字符串进行精确或灵活...

    Java正则表达式详细讲解

    在Java中,字符串与正则表达式之间的操作主要由`Pattern`、`Matcher`和`String`类的`matches()`、`split()`和`replaceAll()`等方法完成。 ### 2. 创建正则表达式 要创建一个正则表达式,你需要在字符串中包含特定...

    java正则表达式截取demo下载即可运行

    在Java中,`java.util.regex`包提供了正则表达式相关的类,如`Pattern`和`Matcher`。`Pattern`类用于编译正则表达式,而`Matcher`类则是用来在特定输入字符串中查找与正则表达式匹配的序列。 1. **Pattern类**: -...

    java正则表达式.pdf

    Java的正则表达式主要由`java.util.regex`包中的三个关键类构成:`Pattern`、`Matcher`和`PatternSyntaxException`异常类。 1. **Pattern类**:该类用于编译正则表达式字符串,并创建一个Pattern对象,用于匹配文本...

    java正则表达式使用例子

    首先,我们需要了解Java中处理正则表达式的`Pattern`和`Matcher`类。`Pattern`类代表一个正则表达式模式,它被编译后用于创建`Matcher`对象。`Matcher`类则提供了多种方法来执行匹配操作,如`matches()`、`find()`和...

    JAVA 正则表达式总结

    在Java中,使用`Pattern`类编译正则表达式,然后使用`Matcher`类进行匹配操作。基本步骤如下: 1. 使用`Pattern.compile(regex)`编译正则表达式。 2. 使用`pattern.matcher(input)`创建`Matcher`对象,其中`input`是...

    Java 正则表达式判断字符串是否包含中文

    1. **`Pattern` 类**:负责编译正则表达式,并提供 matcher 方法来获取 Matcher 对象。 2. **`Matcher` 类**:用于执行匹配操作,可以用来查找字符串中的匹配项。 3. **`PatternSyntaxException` 类**:当提供的正则...

Global site tag (gtag.js) - Google Analytics