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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。