findAllIn
方法(或屬性)屬於util.matching.Regex類(class),其相關用法說明如下。
用法:
def findAllIn(source: CharSequence): MatchIterator
返回給定字符序列中此 Regex
的所有非重疊匹配作為 scala.util.matching.Regex.MatchIterator ,這是一個特殊的 scala.collection.Iterator ,它返回匹配的字符串,但也可以查詢有關最後一個匹配的更多數據,例如捕獲組和起始位置.
MatchIterator
也可以轉換為返回類型為 scala.util.matching.Regex.Match 的對象的迭代器,例如通常由 findAllMatchIn
返回的對象。
如果潛在匹配重疊,則返回第一個可能的匹配,然後是第一個匹配所消耗的輸入之後的下一個匹配:
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)
要返回重疊匹配,可以使用不占用重疊區域的前瞻 (?=
) 來製定正則表達式。
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)
在用盡迭代器後嘗試檢索匹配信息會導致 java.lang.IllegalStateException 。有關詳細信息,請參閱scala.util.matching.Regex.MatchIterator。
值參數:
- source
要匹配的文本。
返回:
A scala.util.matching.Regex.MatchIterator 個匹配的子字符串.
例子:
for (words <- """\w+""".r findAllIn "A simple example.") yield words
源碼:
- Regex.scala
相關用法
- Scala Regex.findAllMatchIn用法及代碼示例
- Scala Regex.findFirstIn用法及代碼示例
- Scala Regex.findPrefixMatchOf用法及代碼示例
- Scala Regex.findPrefixOf用法及代碼示例
- Scala Regex.findFirstMatchIn用法及代碼示例
- Scala Regex.quoteReplacement用法及代碼示例
- Scala Regex.unapplySeq用法及代碼示例
- Scala Regex.replaceSomeIn用法及代碼示例
- Scala Regex.unanchored用法及代碼示例
- Scala Regex.replaceAllIn用法及代碼示例
- Scala Regex.quote用法及代碼示例
- Scala Regex.this用法及代碼示例
- Scala Regex.matches用法及代碼示例
- Scala Regex.Groups用法及代碼示例
- Scala Regex.Match用法及代碼示例
- 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.findAllIn。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。