`

再说 Java 中使用正则表达式进行后向引用($1,$2...)

 
阅读更多

前面通过 在 Java 中使用正则表达式进行后向引用($1,$2...) 讲了在 Java 中使用 JavaScript 和 JRegex 来实现正则表达式的后向分组引用 $1, $2 替换。

自 JDK 1.4 出现正则表达式以来我还真不知道 Java 的正则表达式是可以在替换时用 $1, $2 达成后向分组替换的,所以前一篇表述有些出入的。也就是要实现 JavaScript 中的

1
2
3
4
5
6
<script>
    var src = "abc def";
    var des = src.replace(/(\w+)\s+(\w+)/, "$2 $1");
    document.write(des);
    //输出为: def abc
</script>

的功能,完全可以不求助于第三方的正则表达式组件库或是通过 ScriptEngine + JavaScript 来实现,在 Java 字符串的:

public String replaceFirst(String regex, String replacement)
public String replaceAll(String regex, String replacement)

两方法的第三个参数中是可以用 $1, $2 ... 来引用第一个参数的括号分组的,简单 Java 示例代码如下:

1
2
"abc def".replaceFirst("(\\w+)\\s+(\\w+)", "$2 $1"); //结果为 def abc
"abc def aaa bbb".replaceAll("(\\w+)\\s+(\\w+)", "$2 $1"); //结果是 def abc bbb aaa

Java 的正则表达式原本还是很强大的,只怕不能被人发现。

2015-07-14: 补充一点,在正则表达式外是用  $1, $2 ... 来进行后向引用,如果是在正则表达式中就需要用  \1, \2 ... 的形式来进后向引用。下面例子,替换重复出现的两位数及之间的内容

1
"xx12abcd12345".replaceAll("(\\d{2}).+?\\1", ""); //结果为 xx345
分享到:
评论

相关推荐

    java正则表达式.zip

    在Java中,正则表达式主要通过`java.util.regex`包来实现,提供了Pattern和Matcher两个核心类。 **1. Pattern类** Pattern类是Java正则表达式的起点,它将一个正则表达式编译成一个模式对象。这个编译过程可以优化...

    Java使用正则表达式提取XML节点内容的方法示例

    Java中提供了对正则表达式的支持,使得开发者可以使用正则表达式来匹配和提取字符串中的内容。 二、XML节点内容提取方法 在Java中,可以使用正则表达式来提取XML节点内容。下面是一个简单的示例: ```java public ...

    java正则表达式匹配工具

    在Java中,正则表达式的使用主要依赖于`java.util.regex`包中的类,如`Pattern`和`Matcher`。 首先,我们来看`Pattern`类。这个类是正则表达式的模板,负责编译和存储正则表达式。一旦正则表达式被编译为`Pattern`...

    Java正则表达式.ppt

    在Java中,正则表达式提供了简洁而灵活的方式来处理字符串,使得编程人员能够以更高效的方式实现各种文本操作。 正则表达式的起源可以追溯到20世纪中叶,由Warren McCulloch和Walter Pitts的神经网络理论,以及...

    JAVA正则表达式大全

    正则表达式的学习需要对元字符、量词、预查、后向引用等概念有深入理解,同时掌握Java中`Pattern`和`Matcher`的使用方法,结合实际案例进行实践,才能灵活运用到实际项目中。在处理字符串相关问题时,熟练掌握正则...

    使用Java正则表达式分析处理日志

    Java中的正则表达式主要通过`java.util.regex`包中的类来实现,如`Pattern`和`Matcher`。 在日志处理中,我们通常需要完成以下任务: 1. **过滤日志级别**:日志通常包含不同的级别,如DEBUG、INFO、WARN、ERROR等...

    Java正则表达式 Java 正则表达式

    Java正则表达式是Java语言中用于处理字符串的强大工具,它允许程序员进行复杂的字符串匹配、查找和替换操作。正则表达式(Regular Expression)是一种模式匹配语言,通过特定的语法来描述字符串的模式,用于在文本中...

    java使用正则表达式判断手机号的方法示例

    3. Pattern和Matcher类的使用:在java中,Pattern类和Matcher类是用于正则表达式匹配的。Pattern类用于编译正则表达式,而Matcher类用于匹配字符串。 4. Pattern.compile()方法:Pattern.compile()方法用于编译正则...

    java_zhengze.rar_正则表达式_正则表达式 java

    正则表达式是编程语言中用于模式匹配和字符串处理的强大工具,在Java中也不例外。Java的正则表达式功能强大,可以用于验证输入、提取信息、替换文本等多种场景。本资料"java_zhengze.rar"提供了对Java正则表达式的...

    Java中如何使用正则表达式

    Java中的正则表达式是处理字符串的强大工具,它允许我们以一种简洁的方式匹配、查找、替换和解析文本。正则表达式(Regular Expression)是一种模式匹配语言,它由特殊字符和普通字符组成,用于定义一个搜索模式。在...

    常用java正则表达式

    在Java中使用正则表达式,通常会使用Java自带的标准库。但在撰写本文时,Java尚未正式支持正则表达式,因此可以通过Jakarta-ORO库来实现。以下是一个简单的使用示例: 1. **加载Jakarta-ORO库**:首先,从Apache...

    正则表达式.rar 正则表达式.rar

    2. **搜索与替换**:在文本编辑器或编程语言中,使用正则表达式快速查找特定模式并进行替换。 3. **文件名过滤**:在文件系统操作中,通过正则表达式筛选满足条件的文件或目录。 4. **文本分析**:在自然语言处理和...

    Java根据正则表达式生成字符串—Xeger,automaton

    在Java中,我们可以使用RE2J库,它是Google开发的一个高效、安全的正则表达式引擎,支持构造有限状态自动机。虽然RE2J主要设计用于正则表达式的匹配,但通过它的内部机制,我们可以间接地实现字符串生成。 下面是一...

    常用正则表达式HTML,JAVA合集

    2. **Java中的正则表达式**: Java提供了`java.util.regex`包,通过`Pattern`和`Matcher`类支持正则表达式。以下是如何在Java中验证电话号码的一个例子: ```java import java.util.regex.Pattern; import java....

    java 正则表达式应用jar包 regex-smart.jar

    Java正则表达式是编程语言Java中的一个强大工具,它用于模式匹配、数据验证和文本检索替换。在Java中,正则表达式是通过java.util.regex包提供的接口和类来实现的。`regex-smart.jar`这个库显然是为了简化开发者在...

    使用Java正则表达式实现一个简单的身份证号码验证

    本文将详细介绍如何使用Java中的正则表达式来实现身份证号码的有效性检查。 #### 二、Java正则表达式简介 Java提供了强大的正则表达式支持,主要通过`java.util.regex`包中的`Pattern`和`Matcher`类来实现。`...

    java-正则表达式-分组引用介绍

    ### Java中的正则表达式:分组引用介绍 #### 概述 正则表达式是计算机科学中一种非常强大的文本处理工具,在Java等编程语言中广泛应用于字符串匹配、搜索替换等场景。当需要对正则表达式的部分结果进行进一步处理...

    java 字符串 正则表达式 详细实例代码

    本篇将深入探讨Java中的字符串、正则表达式及其在实际编程中的详细实例代码。 1. **字符串基础** - Java中的字符串是不可变的,这意味着一旦创建了字符串对象,就不能更改其内容。这由`final`关键字确保,提高了...

    DB2使用正则表达式.

    DB2使用正则表达式所需的压缩包,按照博客步骤进行操作

    java正则表达式.pdf

    下面是一个简单的示例,展示了如何使用Java中的正则表达式进行文本匹配: ```java package testreg; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexStudy { public ...

Global site tag (gtag.js) - Google Analytics