加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

数组 – 在scala中将匹配的正则表达式提取到数组

发布时间:2020-12-16 10:06:09 所属栏目:安全 来源:网络整理
导读:我遇到了这个问题.我有一个 val line:String = "PE018201804527901" 与此匹配 regex : (.{2})(.{4})(.{9})(.{2}) 我需要从正则表达式中提取每个组到一个数组. 结果将是: Array["PE","0182","018045279","01"] 我试着做这个正则表达式: val regex = """(.{2
我遇到了这个问题.我有一个

val line:String = "PE018201804527901"

与此匹配

regex : (.{2})(.{4})(.{9})(.{2})

我需要从正则表达式中提取每个组到一个数组.

结果将是:

Array["PE","0182","018045279","01"]

我试着做这个正则表达式:

val regex =  """(.{2})(.{4})(.{9})(.{2})""".r
val x= regex.findAllIn(line).toArray

但它不起作用!

解决方法

你的解决方案@sheunis非常有帮助,最后我用这个方法解决了它:

def extractFromRegex (regex: Regex,line:String): Array[String] = {
   val list =  ListBuffer[String]()
   for(m <- regex.findAllIn(line).matchData;
      e <- m.subgroups)
   list+=e
list.toArray

}

因为你的解决方案有这个代码:

val line:String = """PE0182"""
val regex ="""(.{2})(.{4})""".r  
val t = regex.findAllIn(line).subgroups.toArray

显示下一个异常:

Exception in thread "main" java.lang.IllegalStateException: No match available
at java.util.regex.Matcher.start(Matcher.java:372)
at scala.util.matching.Regex$MatchIterator.start(Regex.scala:696)
at scala.util.matching.Regex$MatchData$class.group(Regex.scala:549)
at scala.util.matching.Regex$MatchIterator.group(Regex.scala:671)
at scala.util.matching.Regex$MatchData$$anonfun$subgroups$1.apply(Regex.scala:553)
at scala.util.matching.Regex$MatchData$$anonfun$subgroups$1.apply(Regex.scala:553)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.immutable.List.foreach(List.scala:318)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
at scala.collection.AbstractTraversable.map(Traversable.scala:105)
at scala.util.matching.Regex$MatchData$class.subgroups(Regex.scala:553)
at scala.util.matching.Regex$MatchIterator.subgroups(Regex.scala:671)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读