本文简要介绍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 StringScanner skip_until用法及代码示例
- Ruby StringScanner search_full用法及代码示例
- Ruby StringScanner.beginning_of_line?用法及代码示例
- Ruby StringScanner restsize用法及代码示例
- Ruby StringScanner.pos=用法及代码示例
- Ruby StringScanner check_until用法及代码示例
- Ruby StringScanner getbyte用法及代码示例
- Ruby StringScanner.exist?用法及代码示例
- Ruby StringScanner.get_byte用法及代码示例
- Ruby StringScanner rest?用法及代码示例
- Ruby StringScanner match?用法及代码示例
- Ruby StringScanner.getch用法及代码示例
- Ruby StringScanner.pre_match用法及代码示例
- Ruby StringScanner.peek用法及代码示例
- Ruby StringScanner.matched用法及代码示例
- Ruby StringScanner check用法及代码示例
- Ruby StringScanner peep用法及代码示例
- Ruby StringScanner peek用法及代码示例
- Ruby StringScanner.captures用法及代码示例
- Ruby StringScanner get_byte用法及代码示例
- Ruby StringScanner.charpos用法及代码示例
- Ruby StringScanner.<<用法及代码示例
- Ruby StringScanner string=()用法及代码示例
- Ruby StringScanner post_match用法及代码示例
- Ruby StringScanner exist?用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 StringScanner类。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。