Scala中正则表达式以及与模式匹配的示例分析
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章主要介绍Scala中正则表达式以及与模式匹配的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!正则表达式 //"""原生表达 val regex="""([0-9
千家信息网最后更新 2025年12月03日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安全错误
数据库的锁怎样保障安全
武昌首义图书馆嘉鱼数据库
四川惠普服务器维修调试虚拟主机
网络安全和熬夜
江苏第三方软件开发收费报价表
三种数据库逻辑模型
云隆网络技术有限公司
锐思数据库 图书馆 江苏
网络服务器繁忙
PMS管理体系 服务器
电大数据库应用多选题
老550音乐数据库是啥意思
51cto网络安全专业
mysql酒店管理数据库
数据库如何查看当前时间戳
谷歌地图代理服务器软件
陆家嘴服务器收费
陕西门道网络技术有限公司
从事软件开发分类
用r语言爬取评论数据库
系统集成中服务器是什么意思
山东2020投档线博雅数据库
浦东新区会计网络技术活动方案
数据库系统哪个最重要
服务器是一种
韩国国家网络安全法
ios 网络数据库
计算机网络技术有什么特点
数据库安全的核心和关键是
无法连接到电脑服务器怎么办
软件开发一款APP的团队