unapplySeq
方法(或属性)属于 scala.util.matching.UnanchoredRegex
特性(trait),其相关用法说明如下。
用法 一
def unapplySeq(m: Match): Option[List[String]]
尝试匹配 scala.util.matching.Regex.Match.
先前失败的匹配结果为无。
如果对当前模式进行了成功匹配,则使用该结果。
否则,此 Regex 将应用于先前匹配的输入,并使用该匹配的结果。
继承自:
- Regex
源码:
- Regex.scala
用法 二
def unapplySeq(c: Char): Option[List[Char]]
尝试匹配 scala.Char 的字符串表示.
如果匹配成功,则如果定义了任何组,则结果为第一个匹配组,否则为空序列。
例如:
val cat = "cat"
// the case must consume the group to match
val r = """(\p{Lower})""".r
cat(0) match { case r(x) => true }
cat(0) match { case r(_) => true }
cat(0) match { case r(_*) => true }
cat(0) match { case r() => true } // no match
// there is no group to extract
val r = """\p{Lower}""".r
cat(0) match { case r(x) => true } // no match
cat(0) match { case r(_) => true } // no match
cat(0) match { case r(_*) => true } // matches
cat(0) match { case r() => true } // matches
// even if there are multiple groups, only one is returned
val r = """((.))""".r
cat(0) match { case r(_) => true } // matches
cat(0) match { case r(_,_) => true } // no match
值参数:
- c
要匹配的字符
返回:
比赛
继承自:
- Regex
源码:
- Regex.scala
用法 三
def unapplySeq(s: CharSequence): Option[List[String]]
尝试匹配 java.lang.CharSequence.
如果匹配成功,则结果是匹配组的列表(如果组不匹配任何输入,则为 null
元素)。如果模式未指定任何组,则结果将是成功匹配的空列表。
该方法默认尝试匹配整个输入;要查找下一个匹配子序列,请使用未锚定的 Regex
。
例如:
val p1 = "ab*c".r
val p1Matches = "abbbc" match {
case p1() => true // no groups
case _ => false
}
val p2 = "a(b*)c".r
val p2Matches = "abbbc" match {
case p2(_*) => true // any groups
case _ => false
}
val numberOfB = "abbbc" match {
case p2(b) => Some(b.length) // one group
case _ => None
}
val p3 = "b*".r.unanchored
val p3Matches = "abbbc" match {
case p3() => true // find the b's
case _ => false
}
val p4 = "a(b*)(c+)".r
val p4Matches = "abbbcc" match {
case p4(_*) => true // multiple groups
case _ => false
}
val allGroups = "abbbcc" match {
case p4(all @ _*) => all mkString "/" // "bbb/cc"
case _ => ""
}
val cGroup = "abbbcc" match {
case p4(_, c) => c
case _ => ""
}
值参数:
- s
要匹配的字符串
返回:
比赛
继承自:
- util.matching.Regex.unapplySeq
源码:
- Regex.scala
相关用法
- Scala UnanchoredRegex.findFirstIn用法及代码示例
- Scala UnanchoredRegex.replaceSomeIn用法及代码示例
- Scala UnanchoredRegex.replaceAllIn用法及代码示例
- Scala UnanchoredRegex.findAllMatchIn用法及代码示例
- Scala UnanchoredRegex.findFirstMatchIn用法及代码示例
- Scala UnanchoredRegex.findPrefixMatchOf用法及代码示例
- Scala UnanchoredRegex.matches用法及代码示例
- Scala UnanchoredRegex.findPrefixOf用法及代码示例
- Scala UnanchoredRegex.findAllIn用法及代码示例
- Scala Unfold.partitionMap用法及代码示例
- Scala Unfold.unzip用法及代码示例
- Scala Unfold.inits用法及代码示例
- Scala Unfold.sizeCompare用法及代码示例
- Scala UnrolledBuffer.elementWise用法及代码示例
- Scala UnrolledBuffer.groupBy用法及代码示例
- Scala UnrolledBuffer.addString用法及代码示例
- Scala UnrolledBuffer.groupMap用法及代码示例
- Scala UnrolledBuffer.applyOrElse用法及代码示例
- Scala Unit.orElse用法及代码示例
- Scala UnrolledBuffer.inits用法及代码示例
- Scala UnitOrdering.orElseBy用法及代码示例
- Scala Unit.on用法及代码示例
- Scala UnrolledBuffer.permutations用法及代码示例
- Scala UnrolledBuffer.sizeIs用法及代码示例
- Scala Unfold.mkString用法及代码示例
注:本文由纯净天空筛选整理自scala-lang.org大神的英文原创作品 UnanchoredRegex.unapplySeq。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。