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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。