概念:
1, 模式匹配:就是检索与指定模式匹配的字符串。 Java 提供了专门进行模式匹配的类,在 java.util.regex 。
1) 建立模式对象:
使用 Pattern 类创建一个对象,称为模式对象。它调用类方法 compile ( String pattern )完成这一任务,参数 pattern 是一个正则表达式,称为模式对象使用的模式。若 pattern 指定的正则表达式有错, compile 方法将抛出异常, PatternSyntaxException 。
Pattern 类可以调用类方法 compile(String regex,int flag) 返回一个 pattern 对象,
2) 建立匹配对象
模式对象调用方法 matcher(CharSequence input); 返回一个 Matcher 对象 m ,称为匹配对象,参数 input 可以是任何实现了 CharSequence 接口的类创建的对象。 String 和 StringBuffer 类都使用了 CharSequence 接口。
Matcher 对象可以使用 3 个方法寻找参数 Input 指定的字符序列中是否有与模式 pattern 匹配的子序列。
a) public boolean find () ; 寻找 input 中第一个与模式 pattern 匹配的子序列,若 find ()返回 true,m 调用 start() 和 end() 可以得到该匹配模式子序列在 input 中的开始位置和结束位置。
b) public boolean matches ();判断 input 是否完全与 pattern 匹配
c) public Boolean lookingAt ();判断从 input 开始位置是否有与 pattern 匹配的子序列。若返回 True, m 调用 start() 和 end() 可以得到 lookingAt ()方法找到的匹配模式子序列在 input 中的开始位置和结束位置。
d) public Boolean find ( int start );
e) public string replaceAll ( String replacement );
f) public String replaceFirst ( String replacement );
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TestPattern {
public static void main(String[] args) {
Pattern p ;
Matcher m ;
String s1 = "0A1A2A3A4A5A6A7A8A9" ;
p = Pattern.compile ( "\\dA\\d" );
m = p.matcher(s1);
System . out .println( "matches1:" +m.matches());
while (m.find()) {
String str = m.group();
System . out .println( " 从 " +m.start()+ " 到 " +m.end()+ " 匹配模式子序列 :" );
System . out .println(str);
}
String temp = m.replaceAll( "***" );
System . out .println(temp);
System . out .println(s1);
m = p.matcher( "9A0A0A3" );
if (m.matches()) {
String str = m.group();
System . out .println(str);
System. out .println( "matches:" +m.matches());
System. out .println( "find:" +m.find());
} else {
System . out .println( " 不完全匹配 !" );
}
if (m.lookingAt()) {
String str = m.group();
System . out .println(str);
}
}
}
发表评论
-
深入分析 Java 中的中文编码问题
2011-11-16 07:45 0几种常见的编码格式 ... -
Java 编码
2011-11-16 07:44 0http://zhidao.baidu.com/quest ... -
java字符编码原理解析
2011-11-16 07:43 0可以理解为计算机没 ... -
HttpClient
2011-11-03 11:07 824From http://www.blogjava.net/Al ... -
ECLIPSE ANT OutOfMemoryError
2011-08-04 17:23 1011ANT BUILD MEMORY ERROR: [cl ... -
JDBC BATCH
2011-07-05 14:58 0PreparedStatement ps = conn.pre ... -
OUT OF MEMORY WHEN BUILD
2011-02-22 17:47 01, ANT BUILD: In Eclipse op ... -
spring weblogic jndi
2011-02-16 09:18 1837weblogic:weblogic8.1 数据库:MySql ... -
log4j 邮件
2011-01-24 15:54 0<!-- 设置上下文参数 --> ... -
tomcat weblogic
2010-12-01 11:25 1862EJB 层基本搞定,以前测试 EJB 也都是写一个 appli ... -
ant weblogic “local class incompatible: stream classdesc serialVersionUI”
2010-11-29 12:41 2227weblogic.management.Management ... -
Debugging with the Maven Jetty Plugin in Eclipse
2010-11-15 17:42 1035debug: http://docs.codehaus.or ... -
maven tomcat eclipse debug
2010-11-15 17:36 1946from: http://bandaidprogrammin ... -
maven app tomcat 部署
2010-11-11 15:56 1307修改pom.xml,添加如下配置: <build ... -
Maven Cargo Tomcat 部署
2010-11-11 15:49 1769pom.xml中<build>下添加如下代码: ... -
java中读取配置文件各种方法
2010-09-07 12:31 01。使用Java.util.Properties类的load( ... -
ThreadGroup
2010-05-25 08:47 0在Java中每个线程都属于某个线程组(ThreadGroup) ... -
java Excel 导出
2010-03-28 20:06 0public void createExcel(OutputS ... -
java小数保留两位小数
2009-11-19 16:49 2337方式一: 四舍五入 double f = ... -
java中实现xml schema 验证文件
2009-11-16 20:05 3877XML 是可扩展标记语言,也就是说其中的标记我们可以按照我们 ...
相关推荐
Scala 正则表达式与模式匹配 Scala 正则表达式是 Scala 语言中的一种强大工具,用于模式匹配和字符串处理。在 Scala 中,正则表达式可以通过两种方式创建:通过 `r` 方法直接将字符串转换成正则表达式对象,或者...
这可以帮助我们了解有多少个部分符合正则表达式模式。 5. **取匹配文本**:这会返回整个匹配的文本,即原始文本中与正则表达式完全匹配的部分。 6. **取子匹配文本**:除了整个匹配外,正则表达式可能还包含捕获组...
### 使用正则表达式的模式匹配 #### 正则表达式简介 正则表达式是一种用于描述文本模式的强大工具。在JavaScript中,正则表达式的功能主要通过`RegExp`类实现。这种工具允许开发者进行复杂的模式匹配操作,比如...
### 正则表达式——递归匹配与非贪婪匹配 #### 一、递归匹配 在正则表达式中,递归匹配是一个重要的概念,它主要用于处理那些具有嵌套结构的数据,例如数学公式中的括号匹配或HTML标签的匹配。 ##### 1.1 嵌套...
这个命令接受两个参数:一个是待检测的字符串,另一个是正则表达式模式。 对于匹配中文,我们需要了解中文字符的编码。在Unicode编码中,中文字符通常位于`U+4E00`到`U+9FFF`之间,也包括一些扩展区的汉字。因此,...
在IT领域,正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,它能够进行复杂的模式匹配、查找、替换等操作。在本话题中,我们将探讨如何使用PowerBuilder 11.5这一经典的开发环境来实现正则...
Java正则表达式匹配工具是IT领域中一种强大的文本处理工具,它利用正则表达式(Regular Expression)的规则来查找、替换或者提取文本中的特定模式。正则表达式是一种特殊的字符序列,能够帮助程序员或者用户高效地...
- 正则表达式模式构建:根据输入内容,生成相应的模式,例如,连续的数字可转换为`\d+`。 3. **正则表达式工具的功能** - 自动化转换:工具能自动识别输入内容并生成相应的正则表达式。 - 模式测试:提供测试...
1. **匹配**:检查输入字符串是否符合特定的正则表达式模式。 2. **查找**:在字符串中查找符合正则表达式的部分。 3. **替换**:用新的字符串替换匹配到的正则表达式部分。 4. **分割**:根据正则表达式将字符串...
在VB.NET中,正则表达式(Regular Expression)是一种强大的文本处理工具,它允许程序员通过模式匹配来处理字符串。这个“vb正则表达式实例”很可能是为了帮助开发者测试和理解正则表达式的工作原理而设计的一个应用...
正则表达式(Regular Expression,简称regex)是编程领域中一种强大的文本处理工具,用于匹配字符串模式。在面试和笔试中,尤其是对于IT行业的技术职位,掌握正则表达式是必不可少的技能,尤其是在中兴、华为等知名...
- `Regex.IsMatch(input, pattern)`:检查输入字符串是否符合给定的正则表达式模式。 - `Regex.Match(input, pattern)`:返回输入字符串的第一个匹配项。 - `Regex.Matches(input, pattern)`:返回输入字符串中...
正则表达式是一种强大的文本模式匹配工具,广泛应用于字符串搜索和替换等场景。在Lucene中,可以通过`regexQuery`来利用正则表达式进行复杂条件的匹配,从而实现更精确的搜索需求。 #### regexQuery详解 `regexQuery`...
1. `CRegEx`:这是MFC中的核心正则表达式类,用于表示一个正则表达式模式。它提供了构造、编译、匹配、替换等功能。例如,你可以创建一个`CRegEx`对象,用字符串初始化表达式,然后调用`Compile`方法来验证该表达式...
- **模式匹配**:正则表达式的核心在于模式,它是由特殊字符和普通字符组成的字符串,用于描述一系列可能的输入。 - **元字符**:如`^`(行首)、`$`(行尾)、`.`(任意字符)、`*`(重复零次或多次)、`+`(重复...
### 正则表达式在数据库查询中的应用 #### 引言 在数据库管理与应用程序开发中,查询数据是一项常见的任务。传统的SQL查询虽然强大,但在处理复杂查询时可能存在一定的局限性,尤其是涉及到文本数据的模式匹配时。...
模式, "https?://[\w./]+" // 设置正则表达式模式 .如果 正则表达式对象.搜索(目标文本) = 1 // 搜索匹配的网址 .循环 遍历 结构体(正则表达式对象.匹配结果) .赋值 网址, 结构体(正则表达式对象.匹配结果).内容...
为了帮助开发者更好地掌握Java正则表达式技术,我们提供了一系列的Java正则表达式技巧大全,包括《Java正则表达式技巧大全》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧...
正则表达式是一种强大的文本模式匹配工具,它能用来检查一个字符串是否符合某种预定义的模式。在C语言中,使用正则表达式库可以实现复杂的文本搜索、替换和分析操作,而无需编写复杂的字符串处理代码。PCRE库提供了...
当用户输入时,如果输入不符合预设的正则表达式模式,可以及时给出反馈,比如禁用提交按钮或者显示错误提示。 以下是一个简单的例子,展示了如何创建一个只允许输入数字的lineEdit: ```cpp #include #include ...