文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

一文搞懂Java正则表达式

2024-11-30 13:54

关注

例如,我们可以编写一个正则表达式来表示所有有效的电子邮件地址,或者我们可以编写一个正则表达式来验证有效的电话号码等。

使用正则表达式的最重要的应用领域是:

要在Java中使用正则表达式,我们可以利用java.util.regex包,该包包括以下类:

这里是一个正则表达式的示例代码片段:

import java.util.regex.*;

public class RegularExpression {

    public static void main(String[] args) {
        int count = 0;
        Pattern pattern = Pattern.compile("ab");
        Matcher matcher = pattern.matcher("abcbcbcababacb");
        while (matcher.find()) {
            ++count;
            System.out.println(matcher.group()+ "...... found at: "+matcher.start());
        }

        System.out.println("The Total number of occurrence is " + count);

    }
}

2 Pattern

Pattern是一个已编译的正则表达式,即Java中的模式等价物。我们可以使用Pattern类的compile()方法创建一个模式对象。Pattern类的compile()方法的签名如下:

Flags——compile()方法中的标志会改变搜索的方式。以下是其中几个:

public static Pattern compile(String regex)

以下是Pattern类compile()方法的一个示例:

Pattern pattern = Pattern.compile("ab");

3 Matcher

matcher对象可用于检查目标字符串中的指定模式。使用Pattern类的matcher()方法,我们可以生成一个匹配器对象。Pattern类的matcher()方法具有以下签名:

public Matcher matcher(CharSequence input)

以下是Pattern类matcher()方法的示例:

Matcher matcher = pattern.matcher("abcbcbcababacb");

Matcher类存在于java.util.regex包中。以下是Matcher类一些最重要的方法:

注意:Pattern和Matcher类存在于java.util.regex包中,从java1.4v开始引入。

4 字符类

5 预定义字符类

6 量词符

我们可以使用量词符指定要匹配的出现次数。

Pattern类的split()方法

要根据特定的模式拆分目标字符串,我们可以使用Pattern类的split()方法。Pattern类的split()方法具有以下签名:

public String[] split(CharSequence input)

为了方便,我在这里包含了Pattern类split()方法的代码片段:

public class RegularExpression {

    public static void main(String[] args) {
        Pattern pattern = Pattern.compile("\\s");
        String[] splitString = pattern.split("Pattern class is present in java.util.regex");
        for (String text : splitString) {
            System.out.println(text);
        }

    }
}

在上面的示例中,根据空格(\s)分割了字符串。

String类的split()方法

String类也包含split()方法。字符串类的split()方法用于根据特定模式拆分目标字符串。

public class RegularExpression {

    public static void main(String[] args) {
        String text = "This is example of String class split() method";
        String[] strings = text.split("\\s");
        for (String s : strings) {
            System.out.println(s);
        }
    }
}

在上面的例子中,字符串是根据空白(\s)来划分的。

注意:Pattern类的split()方法可以接受一个目标字符串作为参数,而String类的split()方法可以接受一个正则表达式作为参数。

7 StringTokenizer

StringTokenizer是专门用于标记化任务的类。Java.util包中有一个StringTokenizer类。

public class StringTokenizerDemo {

    public static void main(String[] args) {
     
        StringTokenizer tokenizer = new StringTokenizer("StringTokenizer class present in java.util package");
        while (tokenizer.hasMoreTokens()) {
            System.out.println(tokenizer.nextToken());

        }
    }
}

注意:StringTokenizer的默认正则表达式为空格符(\s)。

我们也可以根据需要传递正则表达式,以下是代码片段有助于你更好地理解:

StringTokenizer tokenizer = new StringTokenizer("05-21-2023","-");
while (tokenizer.hasMoreTokens()) {
    System.out.println(tokenizer.nextToken());
}

我列了一些常用的编程正则表达式:

来源:Java学研大本营内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯