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安全错误
数据库的锁怎样保障安全
互联网科技
哈尔滨大商圈互联网科技有限公司
科技股互联网
互联网最新的科技
互联网科技深圳
互联网核心科技是什么
易互联网科技有限公司
润盈互联网科技
互联网高科技股票
成都仁贤领冠互联网科技有限公司
互联网科技中介
互联网科技产业特征
互联网行业科技股
伍佰万互联网科技怎么赚钱
雨阳互联网卡科技有限公司
江苏互联网智能科技软件
互联网科技新闻
玉溪新华互联网科技怎么选
广西泛欧互联网科技有限公司
上海旺乐尼互联网科技有限公司
互联网科技媒体
朗涯互联网科技
南京欣网互联网科技
互联网科技素材视频竖屏
蓝色互联网科技
中国互联网有什么科技含量
茂名市互联网科技产业园
崇明区互联网教育科技诚信经营
晓花互联网科技有限公司网址
深圳市优智互联网科技有限公司