在java.util.regex包中,包括了两个类,Pattern(模式类)和Matcher(匹配器类)。Pattern类是用来表达和陈述所要搜索模式的对象,Matcher类是真正影响搜索的对象。
从javadoc中,我们可以知道,指定为字符串的正则表达式必须首先被编译为Pattern类的实例。然后,可将得到的模式用于创建 Matcher 对象。
import java.util.regex.*;
public class Test{
public static void main(String[] args){
/*多个匹配器可以共享一个模式类*/
Pattern p = Pattern.compile("a*b");
Matcher m1 = p.matcher("aaaaaaaaaaaaaab");
Matcher m2 = p.matcher("aba");
boolean b1 = m1.matches();
boolean b2 = m2.matches();
System.out.println("b1:"+b1);//true
System.out.println("b2:"+b2);//false
/*matches 方法:编译表达式并在单个调用中将输入序列与其匹配*/
boolean b = Pattern.matches("a*b", "aaaaab");
System.out.println("b:"+b);//true
/*
CANON_EQ: 启用规范等价
CASE_INSENSITIVE: 启用不区分大小写的匹配
COMMENTS :模式中允许空白和注释
DOTALL: 启用 dotall 模式。
LITERAL: 启用模式的字面值分析
MULTILINE: 启用多行模式
UNICODE_CASE :启用 Unicode 感知的大小写折叠
UNICODE_CASE :启用 Unicode 感知的大小写折叠
UNIX_LINES :启用 Unix 行模式
*/
Matcher m3 = p.matcher("AAAAAAAAAAAAAAB");
boolean b3 = m3.matches();
System.out.println("b3:"+b3);//false
Pattern p2 = Pattern.compile("a*b",Pattern.CASE_INSENSITIVE);
Matcher m4 = p2.matcher("AAAAAAAAAAAAAAB");
boolean b4 = m4.matches();
System.out.println("b4:"+b4);//true
}
}
部分正则表达式的构造:
\\ 反斜线字符
[abc] a、b 或 c
[^abc] 任何字符,除了 a、b 或 c
[a-zA-Z] a 到 z 或 A 到 Z
. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
^ 行的开头
$ 行的结尾
\b 单词边界
分享到:
相关推荐
`regex-smart.jar`这个库显然是为了简化开发者在Java项目中使用正则表达式的流程,它提供了一系列内置的验证、提取和清洗方法,使得处理字符串变得更加高效和便捷。 首先,让我们了解一下正则表达式的基础概念。...
`java.util.Scanner` 类是 Java 标准库中的一个实用工具类,它提供了一种方便的方式来读取基本类型的原始数据和字符串。`Scanner` 类可以读取从控制台输入的数据、文件中的数据,甚至是从字符串中的数据。 #### 二...
import java.util.regex.Pattern; public class StringCounter { /** * 正则统计字符串出现次数 * * @param source * @param regexNew * @return int */ public static int finder(String source, ...
在Java中,我们可以使用`java.util.regex`包中的`Pattern`和`Matcher`类来匹配和操作符合特定模式的字符串。对于提取括号内的内容,一个简单的正则表达式可以是`\((.*?)\)`,它匹配一对括号,并用`.*?`非贪婪地捕获...
在Java中,`java.util.regex` 包提供了Pattern和Matcher类来处理正则表达式。然而,对于生成符合正则表达式的字符串,标准库并不提供直接支持。这时,我们可以引入第三方库,如`org.pcollections.Xeger` 和 `...
16. **`java.util.Scanner`**: 从各种输入源读取基本类型和字符串。 17. **`java.util.Properties`**: 用于存储配置信息,如XML或Properties文件。 18. **`java.util.Random`**: 生成随机数。 19. **`java.util....
7. **`java.util.regex.Pattern`** 和 **`Matcher`**:处理正则表达式,用于文本匹配和替换。 8. **`java.util.concurrent`** 包:提供并发工具类,如`ExecutorService`、`Future`和`Semaphore`,帮助管理线程和...
23. `java.util.regex.Pattern`:Pattern类用于编译正则表达式,用于匹配字符串。 24. `java.io.Serializable`:Serializable接口用于对象序列化,允许对象的状态被保存和恢复。 25. `java.util.LinkedList`:...
java.util.regex.Pattern p_script; java.util.regex.Matcher m_script; java.util.regex.Pattern p_style; java.util.regex.Matcher m_style; java.util.regex.Pattern p_html; java.util.regex.Matcher m_...
- `java.util.regex.Pattern` 和 `java.util.regex.Matcher` 支持正则表达式匹配和操作。 6. **网络工具类**: - `java.net.URL` 和 `java.net.URLConnection` 用于处理网络连接和资源获取。 - `java.net.Socket...
用于从标准输入(键盘)或文件读取数据,如用户输入的整数、字符串等。 11. **`java.util.Comparator`**: 接口用于比较对象,常用于自定义排序规则,例如在`Collections.sort()`或`TreeSet`中使用。 12. **`...
在Java编程中,将文本内容中的符合URL格式的字符串转换为超链接是一项常见的需求,特别是在处理用户生成内容或网络爬虫应用中。本教程将详细讲解如何使用Java实现这一功能,主要涉及URL正则表达式匹配和字符串处理...
6. **`java.util.regex.Pattern`和`Matcher`**:这两类用于处理正则表达式,`Pattern`编译正则表达式,`Matcher`在目标字符串上执行匹配操作。 7. **`java.util.Random`**:用于生成随机数,可以生成指定范围内的...
在Java中,`java.util.regex`包提供了用于处理正则表达式的类和接口,包括`Pattern`和`Matcher`两个核心类。 - `Pattern`: 是一个编译后的正则表达式对象。 - `Matcher`: 是与输入字符串匹配的`Pattern`的对象。 #...
首先,我们需要了解Java中处理正则表达式的相关类,如`java.util.regex.Pattern`和`java.util.regex.Matcher`。`Pattern`类用于编译正则表达式,而`Matcher`类则执行实际的匹配操作。 1. **创建正则表达式**: 要...
在Java中,正则表达式的功能主要通过`java.util.regex`包来实现,该包提供了`Pattern`、`Matcher`等类来帮助开发者进行字符串的匹配、查找和替换等工作。 #### 二、Java正则表达式的基础概念 在深入探讨Java中正则...
### Java正则表达式替换字符串详解 #### 一、引言 在Java编程语言中,正则表达式是一种强大的文本处理工具,它可以帮助开发者轻松地完成字符串搜索、替换等任务。本文将详细介绍如何使用Java正则表达式进行字符串...
- `Pattern.compile(regex)`编译正则表达式为模式对象,`Matcher`对象通过`Pattern`对象的`matcher(String input)`方法与输入字符串关联。 - 常用的正则表达式方法有`matches()`、`find()`、`replaceAll(String ...
另外,`java.util.regex`包中的Pattern和Matcher类则支持正则表达式匹配。 4. **并发处理**:`java.util.concurrent`包提供了线程安全的数据结构和并发工具,如ExecutorService、Semaphore、CountDownLatch、...
在实际开发中,Java正则表达式广泛应用于数据验证(如邮箱、电话号码格式检查)、文本处理(如提取关键词、替换特定格式的字符串)等领域。熟练掌握Java正则表达式,能够提高代码的效率和可读性,是每个Java开发者...