unapplySeq
方法(或属性)属于util.matching.Regex类(class),其相关用法说明如下。
用法 一
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
要匹配的字符串
返回:
比赛
源码:
- 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.scala
用法 三
def unapplySeq(m: Match): Option[List[String]]
尝试匹配 scala.util.matching.Regex.Match.
先前失败的匹配结果为无。
如果对当前模式进行了成功匹配,则使用该结果。
否则,此 Regex 将应用于先前匹配的输入,并使用该匹配的结果。
源码:
- Regex.scala
相关用法
- Scala Regex.unanchored用法及代码示例
- Scala Regex.findFirstIn用法及代码示例
- Scala Regex.quoteReplacement用法及代码示例
- Scala Regex.findPrefixMatchOf用法及代码示例
- Scala Regex.findPrefixOf用法及代码示例
- Scala Regex.findAllMatchIn用法及代码示例
- Scala Regex.replaceSomeIn用法及代码示例
- Scala Regex.findAllIn用法及代码示例
- Scala Regex.replaceAllIn用法及代码示例
- Scala Regex.quote用法及代码示例
- Scala Regex.this用法及代码示例
- Scala Regex.matches用法及代码示例
- Scala Regex.Groups用法及代码示例
- Scala Regex.Match用法及代码示例
- Scala Regex.findFirstMatchIn用法及代码示例
- Scala Reverse.tails用法及代码示例
- Scala Reverse.sortBy用法及代码示例
- Scala Reverse.lengthCompare用法及代码示例
- Scala Reverse.collectFirst用法及代码示例
- Scala Reverse.permutations用法及代码示例
- Scala Reverse.lazyZip用法及代码示例
- Scala Reverse.addString用法及代码示例
- Scala Reverse.transpose用法及代码示例
- Scala Reverse.sizeIs用法及代码示例
- Scala Reverse.lengthIs用法及代码示例
注:本文由纯净天空筛选整理自scala-lang.org大神的英文原创作品 Regex.unapplySeq。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。