`
ralphr
  • 浏览: 143516 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JAVA中正则表达式的应用(二)

阅读更多

主要部分就是正则表达式替换。所以我们先来
实现一个字符的替换,这里只使用: java.util.regex.Pattern和Java.util.regex.Matcher这两个

我们先来练习使用pattern:

代码如下:

package com.boardmx;

import java.util.regex.Pattern;

public class TestPattern {
public static void main(String[] args) {
   String srcStr = "this is :: test String";
   Pattern p = Pattern.compile("::");
   String[] destStr = p.split(srcStr);
  
   for (int i=0; i<destStr.length; i++){
    System.out.println(destStr[i]);
   }
}
}

从上面可以看到:

pattern的两个方法,分别是:Pattern.compile() 和 Pattern.split()
compile()方法将完成正则表达式的编译,而split将按正则表达式完成切分,这个个例子中
按照"::"这个符号将字符串切分成了两个字符串
输出一个结果:

this is
test String

从这里我们得学会了基本的Pattern入门。

 

ava.util.regex.Matcher的使用。

我们得先知道如何替换一个字符串才到达成我们的目的, orz....

在正则表达式compile()之我们就可以用pattern得到一个Matcher,例子如下:


package com.boardmx;

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class Replace {
public static void main(String[] args) {
   String regEx = "\\{test\\}";
   Pattern p = Pattern.compile(regEx);
   String t = p.pattern();
  
   Matcher m = p.matcher("this is my: {test} than is: {test}");
   m.find();
   String t2 = m.replaceFirst("korpton");
  
   System.out.println(t);
   System.out.println(t2);  
}
}

这里产生的结果:

\{test\}
this is my: korpton than is: {test}

从这里我们可以看到 p.pattern()方法将返回compile()之后的结果。
并且我们在matcher中使用了replaceFirst()方法。

可以看到确实完成了替换,但是结果并不如意。因为还有一个并不有替换?
其实: 我们可有一个Matcher.replaceAll()可用。 XD

 

Matcher中的分组

确切的说应该是正则表达式的分组才对,这里还有一些反向引用,
在正则表达式中。小括号里的就遣桓龇肿?你可以使用自动的命名或给他一个名字

public class Main {
public static void main(String[] args) {
   String str = "<!-- BEGIN row --> this is {test} and this is end <!-- END row -->";
   String regEx = "<!-- BEGIN (\\w+) -->(.*)<!-- END \\1 -->";
  
   Pattern p = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE);
   Matcher m = p.matcher(str);

   if (m.find()){
    int j = m.groupCount()+1;
    for (int i=0; i < j; i++){
     System.out.println(m.group(i));
    }
   }
}
}


我们可以看到结果:

<!-- BEGIN row --> this is {test} and this is end <!-- END row -->
row
this is {test} and this is end

在正则表达中,我们这样写:

<!-- BEGIN (\\w+) -->(.*)<!-- END \\1 -->
----------|↑分组1|--|↑分组2|----|↑反向引用分组1|----

从中可以看到我们可以通过 matcher.groupCount得知有多少个组:
而matcher.group(int)可以知道这个组中的内容,上例中:
0: 就是原字符。
1: 就是第一个小括号的内容。
2: 就是第二个小括号的内容。

 

分享到:
评论

相关推荐

    JAVA中正则表达式的应用

    正则表达式在Java中的应用广泛,可以用于数据验证(如邮箱、电话号码格式),文本搜索替换,以及复杂的数据提取等任务。掌握正则表达式能够极大地提升处理字符串的能力。在实际开发中,可以根据需求选择合适的正则...

    java中正则表达式Pattern类的应用

    java中正则表达式Pattern类的应用,基本上用来验证之类的应用

    浅谈Java中正则表达式的优化方法

    ### 浅谈Java中正则表达式的优化方法 在日常的软件开发过程中,正则表达式作为一种强大的文本处理工具被广泛应用于数据验证、文本搜索与替换等场景之中。尤其是在Java语言环境中,`java.util.regex`包提供了丰富的...

    JAVA中正则表达式

    在实际应用中,正则表达式常用于数据验证,例如验证用户输入的邮箱、电话号码格式,或者在Web爬虫中提取网页上的特定信息。此外,它也可以用于统计代码行,例如在Java中,可以使用正则表达式来查找特定类型的文件并...

    Java中正则表达式的应用

    有重点和调理,一看就会了. 只要涉及java两个类

    java中正则表达式使用方法

    Java中的正则表达式是处理字符串的强大工具,用于查找、替换和验证文本模式。下面将详细介绍标题和描述中提到的一些核心概念和用法。 1. **^ 和 $** - `^` 表示字符串的开始,用于确保匹配的模式出现在行首。例如...

    Java中正则表达式使用方法详解.docx

    在本文中,我们将深入探讨Java中正则表达式的使用方法,以及如何通过它们来增强我们的代码功能。 首先,Java中的正则表达式支持是通过`java.util.regex`包提供的。这个包包含三个主要类:`Pattern`、`Matcher`和`...

    java中正则表达式实例详解

    下面将详细解释Java中的正则表达式实例,包括其基本概念、使用方法以及常见的应用。 1. **普通字符**: 在Java中,正则表达式中的普通字符如"a", "b"等,表示匹配这些字符自身。例如,`str1.split("abc")`会将字符...

    浅析PHP中正则表达式的应用

    ### 浅析PHP中正则表达式的应用 #### 1. 引言 随着互联网的飞速发展,Web应用程序已经成为日常生活中不可或缺的一部分。在这样的背景下,确保网络内容的合法性和文明性变得尤为重要。正则表达式作为一种强大的文本...

    Oracle中正则表达式的使用实例教程

    本文主要介绍了关于Oracle中正则表达式的使用方法,下面话不多说了,来一起看看详细的介绍。 Oracle使用正则表达式离不开这4个函数:regexp_like、regexp_substr、regexp_instr、regexp_replace。 regexp_like 该...

    正则表达式在Java代码中的使用

    这篇博客将深入探讨正则表达式在Java代码中的应用。 首先,创建一个正则表达式需要使用Pattern类。Pattern类的compile方法接受一个字符串参数,该字符串就是正则表达式。例如,创建一个匹配数字的正则表达式: ```...

    程序设计语言中正则表达式详解

    在编程语言中,如Perl、Python、Java和JavaScript,都有内置的正则表达式支持,允许开发者在代码中进行高级文本处理。 正则表达式的学习曲线可能较为陡峭,但一旦掌握,它们能极大地提高你的工作效率。理解正则...

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

    本文将详细介绍Java中正则表达式的分组引用概念及其应用。 #### 分组引用的格式与原理 分组引用是指通过在正则表达式中使用圆括号`()`来定义一组字符或模式,并能够在之后的表达式中通过特定的方式重新引用这些...

    java正则表达式简单应用

    掌握Java正则表达式可以极大地提高文本处理的效率和灵活性,它在数据验证、文本解析、日志分析等多个场景都有广泛应用。通过不断实践和学习,开发者可以更加熟练地运用这些技巧解决各种复杂问题。

    JAVA中正则表达式匹配,替换,查找,切割的方法

    接下来,我们将详细介绍Java中正则表达式的使用方法,并举例说明如何使用split()方法进行字符串查找,replace()方法进行字符串替换,以及如何使用Pattern和Matcher类来获取字符串中的特定部分。 首先是字符串查找,...

    JAVA正则表达式实例教程

    ### JAVA正则表达式实例教程知识点详述 #### 一、正则表达式的定义与...通过以上知识点的学习和理解,开发者能够更加深入地了解 Java 中正则表达式的使用方法,并能有效地应用到实际项目中,解决复杂的文本处理问题。

    Java中正则表达式去除html标签

    在Java程序设计中,正则表达式是处理文本的强大工具,它允许我们对字符串进行模式匹配和操作。去除HTML标签是处理网页数据或用户输入时常见的需求之一,尤其是在从内容管理系统或文本编辑器中获取数据时。HTML标签的...

    Java中正则表达式的使用和详解(下)

    为了更好地理解和应用 Java 中的正则表达式,建议开发者在实际的编程工作中尝试编写正则表达式,并测试不同情况下的匹配行为。实践是掌握正则表达式的最好方式,同时还可以查找相关的教程或文档以加深理解。

    Java编程中正则表达式的用法总结

    本文将详细总结Java中正则表达式的用法,包括基础知识、创建正则表达式的方法、正则表达式中的特殊字符、预定义字符、边界匹配符以及表示匹配次数的符号,并提供一些实例来帮助理解和应用。 首先,让我们了解一下...

Global site tag (gtag.js) - Google Analytics