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