Java的正则表达式是如此的强大,能够帮我们做很多东西,而这如果放到c或者c++中则会花去很多时间。Java的Regex包下的Pattern 和 Matcher两个类,如果仔细阅读帮助文档的话,很容易就能掌握其中的内容。
一个Matcher实例是被用来对目标字符串进行基于既有模式(也就是一个给定的Pattern所编译的正则表达式)进行匹配查找的,所有往Matcher的输入都是通过CharSequence接口提供的,这样做的目的在于可以支持对从多元化的数据源所提供的数据进行匹配工作。
方法就不一一叙述,将其中比较重要,且易混淆的方法对比如下:
Matcher中的matches()/lookingAt ()/find()方法:
一个Matcher对象是由一个Pattern对象调用其matcher()方法而生成的,一旦该Matcher对象生成,它就可以进行三种不同的匹配查找操作:
1.matches()方法尝试对整个目标字符展开匹配检测,也就是只有整个目标字符串完全匹配时才返回真值。
2.lookingAt ()方法将检测目标字符串是否以匹配的子串起始。
3.find()方法尝试在目标字符串里查找下一个匹配子串。
Matcher中的replaceAll ()/appendReplacement()/appendTail()方法:
Matcher类同时提供了四个将匹配子串替换成指定字符串的方法:
1.replaceAll()
2.replaceFirst()
3.appendReplacement()
4.appendTail()
replaceAll()与replaceFirst()的用法都比较简单,请看上面方法的解释。
appendReplacement(StringBuffer sb, String replacement) 将当前匹配子串替换为指定字符串,并且将替换后的子串以及其之前到上次匹配子串之后的字符串段添加到一个StringBuffer对象里,而appendTail(StringBuffer sb) 方法则将最后一次匹配工作后剩余的字符串添加到一个StringBuffer对象里。
举例如下:
Pattern p = Pattern.compile("cat");
Matcher m = p.matcher("dog cat cat dog dog dog dog cat");
StringBuffer sb = new StringBuffer();
while(m.find()) {
m.appendReplacement(sb, m.group());
}
m.appendTail(sb);
System.out.println(sb);
下面罗列出常见的正则表达式:
1. 浮点数 [-\\+]?\\d+(\\.\\d*)?
2. 邮件地址 ^[a-zA-Z][\\w\\.\\-_]*@(\\w+\\.)+[a-zA-Z]{2,3}$
以字母开头
邮件中除了数字和字母外,只可以有.-_字符
3. 整数 [-\\+]?[1-9]\\d*
分享到:
相关推荐
在Java中,正则表达式是通过java.util.regex包提供的接口和类来实现的。`regex-smart.jar`这个库显然是为了简化开发者在Java项目中使用正则表达式的流程,它提供了一系列内置的验证、提取和清洗方法,使得处理字符串...
Reading the javadoc forjava.util.regex. Pattern is a must to see how the Java regex patterns aredi erent from other languages such as Perl. Most of the functions discussed herin are from thejava....
探索 Java 正则表达式语法的更多细节,并了解Pattern类中的引擎如何实际解释正则表达式。 不是通过文档(通过合同)推断正则表达式的含义,这允许我们直接验证引擎如何解释正则表达式。 自该项目开始(2014 年 2 ...
jakarta-oro.jar 及代码 import org.apache.oro.text.regex.MalformedPatternException; import org.apache.oro.text.regex.MatchResult; import org.apache.oro.text.regex...import org.apache.oro.text.regex.Util;
15. **`java.util.regex.Pattern`** 和 **`java.util.regex.Matcher`**: 正则表达式处理。 16. **`java.util.Scanner`**: 从各种输入源读取基本类型和字符串。 17. **`java.util.Properties`**: 用于存储配置信息...
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`:...
11. **`java.util.regex`包**:支持正则表达式,可以用于字符串的匹配、替换和分割。 12. **`java.util.stream`**:Java 8引入的流API,用于处理集合数据,提供了函数式编程风格,如map、filter、reduce等操作。 ...
10. `java.util.regex` 包: - 提供正则表达式相关的类和接口,如`Pattern`和`Matcher`,用于文本匹配和操作。 11. `java.util.stream`: - Java 8引入的流API,支持函数式编程风格,可以方便地进行数据处理,如...
import java.util.regex.*; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.Element; //import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; //import org.dom4j....
20. **`java.util.regex`** 包:正则表达式处理,用于字符串的匹配和替换。 21. **`java.util.Comparator`**:用于自定义排序规则,可以比较对象并定义比较逻辑。 22. **`java.util.ArrayList`** 和 **`java.util....
java.util.regex java.util.zip javax.accessibility javax.activity javax.crypto javax.crypto.interfaces javax.crypto.spec javax.imageio javax.imageio.event javax.imageio.metadata javax.imageio...
- `java.util.regex.Pattern` 和 `java.util.regex.Matcher` 支持正则表达式匹配和操作。 6. **网络工具类**: - `java.net.URL` 和 `java.net.URLConnection` 用于处理网络连接和资源获取。 - `java.net.Socket...
12. **`java.util.regex` 包**: 支持正则表达式,提供了`Pattern`和`Matcher`类进行文本模式匹配和查找替换操作。 13. **`java.util.stream`**: 自Java 8引入的流API,允许对集合进行声明式处理,支持并行和...
java.util.regex java.util.spi java.util.zip javax.accessibility javax.activation javax.activity javax.annotation javax.annotation.processing javax.crypto javax.crypto.interfaces javax.crypto...
import java.util.regex.PatternSyntaxException; import javax.sql.DataSource; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans....
java.util.regex java.util.spi java.util.zip javax.accessibility javax.activation javax.activity javax.annotation javax.annotation.processing javax.crypto javax.crypto.interfaces javax.crypto...
import java.util.regex.Matcher; import java.util.regex.Pattern; /** * . <p/> @author George Wei */ public class I18nTool { private static final String TEMP_RES_ENCODING = "gbk"; private static ...
java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java.util.spi java.util 包中类的服务提供者类。 java.util.zip 提供用于读写标准 ZIP 和 GZIP 文件格式的类。 javax.accessibility 定义了用户...