千家信息网

Scala中正则表达式以及与模式匹配的示例分析

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要介绍Scala中正则表达式以及与模式匹配的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!正则表达式 //"""原生表达 val regex="""([0-9
千家信息网最后更新 2026年11月04日Scala中正则表达式以及与模式匹配的示例分析

这篇文章主要介绍Scala中正则表达式以及与模式匹配的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

正则表达式

 //"""原生表达 val regex="""([0-9]+)([a-z]+)""".r val numPattern="[0-9]+".r val numberPattern="""\s+[0-9]+\s+""".r

说明:.r()方法简介:Scala中将字符串转换为正则表达式

 /** You can follow a string with `.r`, turning it into a `Regex`. E.g. * * `"""A\w*""".r` is the regular expression for identifiers starting with `A`. */ def r: Regex = r()

模式匹配一

 //findAllIn()方法返回遍历所有匹配项的迭代器 for(matchString <- numPattern.findAllIn("99345 Scala,22298 Spark"))  println(matchString)

说明:findAllIn(…)函数简介

/** Return all non-overlapping matches of this `Regex` in the given character  * sequence as a [[scala.util.matching.Regex.MatchIterator]], * which is a special [[scala.collection.Iterator]] that returns the * matched strings but can also be queried for more data about the last match, * such as capturing groups and start position. *  * A `MatchIterator` can also be converted into an iterator * that returns objects of type [[scala.util.matching.Regex.Match]], * such as is normally returned by `findAllMatchIn`. *  * Where potential matches overlap, the first possible match is returned, * followed by the next match that follows the input consumed by the * first match: * * {{{ * val hat = "hat[^a]+".r * val hathaway = "hathatthattthatttt" * val hats = (hat findAllIn hathaway).toList      // List(hath, hattth) * val pos = (hat findAllMatchIn hathaway map (_.start)).toList // List(0, 7) * }}} * * To return overlapping matches, it is possible to formulate a regular expression * with lookahead (`?=`) that does not consume the overlapping region. * * {{{ * val madhatter = "(h)(?=(at[^a]+))".r * val madhats = (madhatter findAllMatchIn hathaway map { * case madhatter(x,y) => s"$x$y" * }).toList          // List(hath, hatth, hattth, hatttt) * }}} * * Attempting to retrieve match information before performing the first match * or after exhausting the iterator results in [[java.lang.IllegalStateException]]. * See [[scala.util.matching.Regex.MatchIterator]] for details. * * @param source The text to match against. * @return  A [[scala.util.matching.Regex.MatchIterator]] of matched substrings. * @example  {{{for (words <- """\w+""".r findAllIn "A simple example.") yield words}}} */ def findAllIn(source: CharSequence) = new Regex.MatchIterator(source, this, groupNames)

模式匹配二

 //找到首个匹配项 println(numberPattern.findFirstIn("99ss java, 222 spark,333 hadoop"))

模式匹配三

//数字和字母的组合正则表达式 val numitemPattern="""([0-9]+) ([a-z]+)""".r val numitemPattern(num, item)="99 hadoop"

模式匹配四

 //数字和字母的组合正则表达式 val numitemPattern="""([0-9]+) ([a-z]+)""".r val line="93459 spark" line match{  case numitemPattern(num,blog)=> println(num+"\t"+blog)  case _=>println("hahaha...") }

val line="93459h spark" line match{  case numitemPattern(num,blog)=> println(num+"\t"+blog)  case _=>println("hahaha...") }

本节所有程序源码

package kmust.hjr.learningScala19/** * Created by Administrator on 2015/10/17. */object RegularExpressOps { def main(args:Array[String]):Unit={ val regex="""([0-9]+)([a-z]+)""".r//"""原生表达 val numPattern="[0-9]+".r val numberPattern="""\s+[0-9]+\s+""".r //findAllIn()方法返回遍历所有匹配项的迭代器 for(matchString <- numPattern.findAllIn("99345 Scala,22298 Spark"))  println(matchString) //找到首个匹配项 println(numberPattern.findFirstIn("99ss java, 222 spark,333 hadoop")) //数字和字母的组合正则表达式 val numitemPattern="""([0-9]+) ([a-z]+)""".r val numitemPattern(num, item)="99 hadoop" val line="93459h spark" line match{  case numitemPattern(num,blog)=> println(num+"\t"+blog)  case _=>println("hahaha...") } }}

以上是"Scala中正则表达式以及与模式匹配的示例分析"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

模式 正则 表达式 方法 示例 分析 内容 字母 数字 简介 篇文章 组合 迭代 中将 价值 兴趣 函数 字符 字符串 小伙 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 百单网互联网科技有限公司 深圳市人人互联网科技有限公司 互联网科技公司怎么样 碳银互联网科技 西安互联网科技公司 衡水科技产业互联网平台 汉立互联网科技有限公司联系电话 上海电发互联网科技有限公司 青岛科技大学互联网大赛研究生 呼和浩特新华互联网科技学院 996高科技互联网公司 西安小鹰速贷互联网科技有限公司 互联网行业科技股 山东星卡互联网科技有限公司官网 东营紫格互联网科技 福建互联网展示科技馆设计 互联网时代科技型公司的机会 互联网科技创业计划的风险分析 宁波允成互联网科技有限公司 六子台科技互联网展会 咖啡豆 上海挚品互联网科技有限公司 中国互联网科技工作委员会毛军 今日互联网科技 互联网科技小贷 北京互联网络科技有限公司 广西互联网科技公司 恒生科技互联网指数分析 小米互联网科技园入驻 承德科技产业互联网平台
0