當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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