java 与 scala 正则表达式

简介: java 与 scala 正则表达式本篇文章用于比较java与scala正则表达式的差别检查某个字符串是否匹配某个正则表达式java 版本核心方法 string.

java 与 scala 正则表达式

本篇文章用于比较java与scala正则表达式的差别

检查某个字符串是否匹配某个正则表达式

java 版本

核心方法 string.matches()

public static void main(String[] args) {
    //正则表达式
    String pattern = "@@\\$\\$##--.*--##\\$\\$@@";
    boolean matches = "@@$$##--abcd--##$$@@".matches(pattern);
    //是否匹配
    System.out.println("@@##--abcd--##@@ 是否匹配:" + matches);
}

scala 版本

object ScalaRegexDemo {

    def main(args: Array[String]) = {
        //构造一个正则表达式
        //因为含有反斜杠,所以使用原始字符串
        var pattern="""@@\$\$##--.*--##\$\$@@"""
        var matches= "@@$$##--abcd--##$$@@".matches(pattern)
        println(s"matches:$matches")
    }
}

使用scala检测字符串是否匹配,方式与java类似。

获取匹配到的字符串

假如我们想获取到 @@$$##--abcd--##$$@@ 中的abcd,当含有多个匹配到的字符串时候,把匹配到的字符串都打印出来。

比如:
@@$$##--ab--##$$@@ zfewurehewui @@$$##--cd--##$$@@ @@$$##--ef--##$$@@

打印出ab、cd、ef

java 版本

public static void main(String[] args) {
    //此处使用非贪婪匹配,关于贪婪匹配可以看这篇文章
    //http://blog.csdn.net/lxcnn/article/details/4756030
    //我们把要提取的字符串用()括起来
    Pattern pattern = Pattern.compile("@@\\$\\$##--(.*?)--##\\$\\$@@");
    Matcher matcher = pattern.matcher("@@$$##--ab--##$$@@ zfewurehewui  @@$$##--cd--##$$@@  @@$$##--ef--##$$@@");
    while (matcher.find()) {
        System.out.println("匹配的完整字符串:" + matcher.group(0));
        System.out.println("内容:" + matcher.group(1));
    }
}

scala 版本

object ScalaRegexDemo2 {

    def main(args: Array[String]) = {
        val pattern ="""@@\$\$##--(.*?)--##\$\$@@""".r
        //使用提取器的方式,获取匹配到的字符串
        for (pattern(item) <- pattern.findAllIn("@@$$##--ab--##$$@@ zfewurehewui  @@$$##--cd--##$$@@  @@$$##--ef--##$$@@")) {
            println(s"item: ${item}")
        }
    }
}
目录
相关文章
|
26天前
|
分布式计算 大数据 Java
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
17 1
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
|
10天前
|
移动开发 Java Windows
Java 匹配\r 和 \n 的正则表达式如何编写
【10月更文挑战第19天】Java 匹配\r 和 \n 的正则表达式如何编写
49 3
|
4月前
|
Java Perl
Java进阶之正则表达式
【7月更文挑战第17天】正则表达式(RegEx)是一种模式匹配工具,用于在字符串中执行搜索、替换等操作。它由普通字符和特殊元字符组成,后者定义匹配规则。
32 4
|
3月前
|
监控 Java API
|
4月前
|
数据采集 监控 Java
day21:Java零基础 - 正则表达式
【7月更文挑战第21天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
30 1
|
4月前
|
Java
如何在Java中使用正则表达式
如何在Java中使用正则表达式
|
4月前
|
Java
如何使用Java中的正则表达式
如何使用Java中的正则表达式
|
4月前
|
SQL Java 数据处理
实时计算 Flink版产品使用问题之使用MavenShadePlugin进行relocation并遇到只包含了Java代码而未包含Scala代码,该怎么办
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
4月前
|
Java
正则表达式在Java中的应用与实例
正则表达式在Java中的应用与实例