`

java.util.regex

阅读更多
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*
分享到:
评论

相关推荐

    article-regex-primer.rar_The Few

    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....

    pattern-dissector:探索 java.util.regex.Pattern 类的内部结构

    探索 Java 正则表达式语法的更多细节,并了解Pattern类中的引擎如何实际解释正则表达式。 不是通过文档(通过合同)推断正则表达式的含义,这允许我们直接验证引擎如何解释正则表达式。 自该项目开始(2014 年 2 ...

    java 正则表达试

    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;

    28个java常用的工具类

    15. **`java.util.regex.Pattern`** 和 **`java.util.regex.Matcher`**: 正则表达式处理。 16. **`java.util.Scanner`**: 从各种输入源读取基本类型和字符串。 17. **`java.util.Properties`**: 用于存储配置信息...

    30个常用java工具类

    7. **`java.util.regex.Pattern`** 和 **`Matcher`**:处理正则表达式,用于文本匹配和替换。 8. **`java.util.concurrent`** 包:提供并发工具类,如`ExecutorService`、`Future`和`Semaphore`,帮助管理线程和...

    最最常用的 100 个 Java类分享

    23. `java.util.regex.Pattern`:Pattern类用于编译正则表达式,用于匹配字符串。 24. `java.io.Serializable`:Serializable接口用于对象序列化,允许对象的状态被保存和恢复。 25. `java.util.LinkedList`:...

    Java常用工具类大全,工作5年精心整理.zip

    11. **`java.util.regex`包**:支持正则表达式,可以用于字符串的匹配、替换和分割。 12. **`java.util.stream`**:Java 8引入的流API,用于处理集合数据,提供了函数式编程风格,如map、filter、reduce等操作。 ...

    java工具类集合

    10. `java.util.regex` 包: - 提供正则表达式相关的类和接口,如`Pattern`和`Matcher`,用于文本匹配和操作。 11. `java.util.stream`: - Java 8引入的流API,支持函数式编程风格,可以方便地进行数据处理,如...

    wsdl文件解析

    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....

    java工具类

    20. **`java.util.regex`** 包:正则表达式处理,用于字符串的匹配和替换。 21. **`java.util.Comparator`**:用于自定义排序规则,可以比较对象并定义比较逻辑。 22. **`java.util.ArrayList`** 和 **`java.util....

    java SE API

    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常用工具类——个人总结

    - `java.util.regex.Pattern` 和 `java.util.regex.Matcher` 支持正则表达式匹配和操作。 6. **网络工具类**: - `java.net.URL` 和 `java.net.URLConnection` 用于处理网络连接和资源获取。 - `java.net.Socket...

    JAVA开发常用工具类

    12. **`java.util.regex` 包**: 支持正则表达式,提供了`Pattern`和`Matcher`类进行文本模式匹配和查找替换操作。 13. **`java.util.stream`**: 自Java 8引入的流API,允许对集合进行声明式处理,支持并行和...

    Javase-6.0_中文API_HTML(最新更新)

    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...

    spring jdbctemplate 封裝

    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....

    jdk 中文版

    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...

    i18n Tools helper

    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.Scanner应用详解_.docx

    ### Java.util.Scanner 应用详解 #### 一、概述 `java.util.Scanner` 类是 Java 标准库中的一个实用工具类,它提供了一种方便的方式来读取基本类型的原始数据和字符串。`Scanner` 类可以读取从控制台输入的数据、...

    Java 中 过滤Html标签

    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_...

Global site tag (gtag.js) - Google Analytics