当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


Ruby StringScanner类用法及代码示例

本文简要介绍ruby语言中 StringScanner类 的用法。

StringScanner 提供对 String 的词法扫描操作。以下是它的用法示例:

s = StringScanner.new('This is an example string')
s.eos?               # -> false

p s.scan(/\w+/)      # -> "This"
p s.scan(/\w+/)      # -> nil
p s.scan(/\s+/)      # -> " "
p s.scan(/\s+/)      # -> nil
p s.scan(/\w+/)      # -> "is"
s.eos?               # -> false

p s.scan(/\s+/)      # -> " "
p s.scan(/\w+/)      # -> "an"
p s.scan(/\s+/)      # -> " "
p s.scan(/\w+/)      # -> "example"
p s.scan(/\s+/)      # -> " "
p s.scan(/\w+/)      # -> "string"
s.eos?               # -> true

p s.scan(/\s+/)      # -> nil
p s.scan(/\w+/)      # -> nil

扫描字符串意味着记住 scan pointer 的位置,这只是一个索引。扫描的目的是每次向前移动一点,因此在扫描指针之后寻找匹配;通常紧随其后。

给定字符串“test string”,以下是相关的扫描指针位置:

  t e s t   s t r i n g
0 1 2 ...             1
                      0

当您 scan 用于模式(正则表达式)时,匹配必须发生在扫描指针之后的字符处。如果您使用 scan_until ,则匹配可以发生在扫描指针之后的任何位置。在这两种情况下,扫描指针都会移动 just beyond 匹配的最后一个字符,准备从下一个字符开始再次扫描。上面的例子证明了这一点。

Method 分类

除了普通扫描仪之外,还有其他方法。您可以在字符串中向前看,而无需实际扫描。您可以访问最近的比赛。您可以修改正在扫描的字符串、重置或终止扫描仪、找出或更改扫描指针的位置、向前跳过等等。

推进扫描指针

展望未来

寻找我们在哪里

设置我们的位置

匹配数据

各种各样的

几种方法都有别名。

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 StringScanner类。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。