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
*/
分享到:
相关推荐
Java中的Pattern和Matcher是正则表达式的核心工具类,它们在处理字符串匹配和模式查找时起着关键作用。本文将深入解析这两个类的功能、用法以及相关知识点。 首先,Pattern类是Java.util.regex包下的一个类,它代表...
接着,定义了一个名为`SocialSecurityNumberValidator`的类,在主方法中使用`Pattern.compile`编译正则表达式,并使用`matcher.matches`来检查字符串是否与给定的模式匹配。 通过上述知识点的学习,读者可以了解到...
### JAVA正则表达式——Pattern和Matcher详解 #### 一、引言 随着JDK 1.4的发布,Java终于内置了自己的正则表达式API,这对于Java开发者来说无疑是个福音,意味着不再需要依赖第三方库就能高效地处理文本数据。Java...
首先,我们需要了解Java中处理正则表达式的相关类,如`java.util.regex.Pattern`和`java.util.regex.Matcher`。`Pattern`类用于编译正则表达式,而`Matcher`类则执行实际的匹配操作。 1. **创建正则表达式**: 要...
- `java.lang.String`:提供了`matches()`方法,可以直接对字符串进行正则匹配。 - `java.util.regex.Pattern`:编译正则表达式为模式对象,用于后续的匹配操作。 - `java.util.regex.Matcher`:与Pattern对象...
除了上述提到的`Pattern`和`Matcher`类,Java的`String`类也提供了`split`方法,可以按照正则表达式来分割字符串。比如,`String[] str = p.split("好456456像:0532214是")`会根据数字来分割给定的字符串,返回一个...
### Java正则表达式Pattern与Matcher详解 #### 一、Java正则表达式的概述 在Java编程语言中,正则表达式(Regular Expression)是一种强大的文本处理工具,它能够帮助开发者进行复杂的字符串搜索和替换操作。Java...
在Java中,主要通过Pattern、Matcher和Pattern类来操作正则表达式。 1. **Pattern类**:这是正则表达式的核心,用于编译正则表达式并创建模式对象。一旦编译完成,该模式可以多次使用,提高了效率。例如: ```java...
Java提供了强大的正则表达式支持,主要通过`java.util.regex`包中的`Pattern`和`Matcher`类来实现。`Pattern`类用于编译正则表达式字符串,而`Matcher`类用于执行与字符串的匹配操作。 #### 三、身份证号码的格式...
在Java中,我们通常使用`Pattern`和`Matcher`类来处理正则表达式。首先,`Pattern`类负责编译正则表达式模式,然后创建`Matcher`对象来应用这个模式到具体字符串上。例如: ```java import java.util.regex.*; ...
在Java中,我们可以使用`java.util.regex`包中的`Pattern`和`Matcher`类来实现字符串的匹配与替换。以下是一个详细解释如何利用Java正则表达式进行模板替换的过程。 1. **理解正则表达式** 正则表达式(Regular ...
`java.util.regex`包提供了`Pattern`和`Matcher`两个核心类,它们协同工作,使得开发者能够利用正则表达式进行复杂的字符串操作。 `Pattern`类是正则表达式的核心,它将文本模式编译成一个内部表示,以便高效地执行...
为了帮助开发者更好地掌握Java正则表达式技术,我们提供了一系列的Java正则表达式技巧大全,包括《Java正则表达式技巧大全》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧...
JAVA的正则表达式主要通过Pattern和Matcher两个核心类实现。Pattern用于编译正则表达式并存储模式,而Matcher则是执行实际匹配操作的对象。通过不同的方法,如matches、split和find,我们可以对字符串进行精确或灵活...
在Java中,字符串与正则表达式之间的操作主要由`Pattern`、`Matcher`和`String`类的`matches()`、`split()`和`replaceAll()`等方法完成。 ### 2. 创建正则表达式 要创建一个正则表达式,你需要在字符串中包含特定...
在Java中,`java.util.regex`包提供了正则表达式相关的类,如`Pattern`和`Matcher`。`Pattern`类用于编译正则表达式,而`Matcher`类则是用来在特定输入字符串中查找与正则表达式匹配的序列。 1. **Pattern类**: -...
Java的正则表达式主要由`java.util.regex`包中的三个关键类构成:`Pattern`、`Matcher`和`PatternSyntaxException`异常类。 1. **Pattern类**:该类用于编译正则表达式字符串,并创建一个Pattern对象,用于匹配文本...
首先,我们需要了解Java中处理正则表达式的`Pattern`和`Matcher`类。`Pattern`类代表一个正则表达式模式,它被编译后用于创建`Matcher`对象。`Matcher`类则提供了多种方法来执行匹配操作,如`matches()`、`find()`和...
在Java中,使用`Pattern`类编译正则表达式,然后使用`Matcher`类进行匹配操作。基本步骤如下: 1. 使用`Pattern.compile(regex)`编译正则表达式。 2. 使用`pattern.matcher(input)`创建`Matcher`对象,其中`input`是...
1. **`Pattern` 类**:负责编译正则表达式,并提供 matcher 方法来获取 Matcher 对象。 2. **`Matcher` 类**:用于执行匹配操作,可以用来查找字符串中的匹配项。 3. **`PatternSyntaxException` 类**:当提供的正则...