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}")
        }
    }
}
目录
相关文章
|
1月前
|
监控 Java Python
Java 中的正则表达式
正则表达式是Java中强大的文本处理工具,支持灵活的匹配、搜索、替换和验证功能。本文介绍了正则表达式的语法基础及其在Java中的应用,包括字符串匹配、替换、分割及实际场景中的邮箱验证和电话号码提取等示例。通过这些技术,可以显著提高文本处理的效率和准确性。
112 8
|
2月前
|
移动开发 Java Scala
Scala 正则表达式
Scala 正则表达式
32 5
|
3月前
|
分布式计算 大数据 Java
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
49 1
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
|
3月前
|
移动开发 Java Windows
Java 匹配\r 和 \n 的正则表达式如何编写
【10月更文挑战第19天】Java 匹配\r 和 \n 的正则表达式如何编写
201 3
|
6月前
|
Java Perl
Java进阶之正则表达式
【7月更文挑战第17天】正则表达式(RegEx)是一种模式匹配工具,用于在字符串中执行搜索、替换等操作。它由普通字符和特殊元字符组成,后者定义匹配规则。
39 4
|
5月前
|
监控 Java API
|
6月前
|
数据采集 监控 Java
day21:Java零基础 - 正则表达式
【7月更文挑战第21天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
40 1
|
6月前
|
Java
如何在Java中使用正则表达式
如何在Java中使用正则表达式
|
6月前
|
Java
如何使用Java中的正则表达式
如何使用Java中的正则表达式