⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.133
Server IP:
185.119.109.197
Server:
Linux managedhosting.chostar.me 5.15.0-160-generic #170-Ubuntu SMP Wed Oct 1 10:06:56 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
8.1.33
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
ri
/
3.0.0
/
system
/
StringScanner
/
View File Name :
cdesc-StringScanner.ri
U:RDoc::NormalClass[iI"StringScanner:ET@I"Object;To:RDoc::Markup::Document:@parts[o;;[&o:RDoc::Markup::Paragraph;[I"RStringScanner provides for lexical scanning operations on a String. Here is ;TI"an example of its usage:;To:RDoc::Markup::BlankLine o:RDoc::Markup::Verbatim;[I"8s = StringScanner.new('This is an example string') ;TI"%s.eos? # -> false ;TI" ;TI"&p s.scan(/\w+/) # -> "This" ;TI"#p s.scan(/\w+/) # -> nil ;TI"#p s.scan(/\s+/) # -> " " ;TI"#p s.scan(/\s+/) # -> nil ;TI"$p s.scan(/\w+/) # -> "is" ;TI"%s.eos? # -> false ;TI" ;TI"#p s.scan(/\s+/) # -> " " ;TI"$p s.scan(/\w+/) # -> "an" ;TI"#p s.scan(/\s+/) # -> " " ;TI")p s.scan(/\w+/) # -> "example" ;TI"#p s.scan(/\s+/) # -> " " ;TI"(p s.scan(/\w+/) # -> "string" ;TI"$s.eos? # -> true ;TI" ;TI"#p s.scan(/\s+/) # -> nil ;TI"#p s.scan(/\w+/) # -> nil ;T:@format0o; ;[ I"PScanning a string means remembering the position of a
scan pointer
, ;TI"Pwhich is just an index. The point of scanning is to move forward a bit at ;TI"Oa time, so matches are sought after the scan pointer; usually immediately ;TI"after it.;T@o; ;[I"IGiven the string "test string", here are the pertinent scan pointer ;TI"positions:;T@o;;[I" t e s t s t r i n g ;TI"0 1 2 ... 1 ;TI" 0 ;T;0o; ;[I"OWhen you #scan for a pattern (a regular expression), the match must occur ;TI"Pat the character after the scan pointer. If you use #scan_until, then the ;TI"Omatch can occur anywhere after the scan pointer. In both cases, the scan ;TI"Ppointer moves
just beyond
the last character of the match, ready to ;TI"Nscan again from the next character onwards. This is demonstrated by the ;TI"example above.;T@S:RDoc::Markup::Heading: leveli: textI"Method Categories;T@o; ;[ I"PThere are other methods besides the plain scanners. You can look ahead in ;TI"Rthe string without actually scanning. You can access the most recent match. ;TI"NYou can modify the string being scanned, reset or terminate the scanner, ;TI"Pfind out or change the position of the scan pointer, skip ahead, and so on.;T@S; ;i;I"Advancing the Scan Pointer;T@o:RDoc::Markup::List: @type:BULLET:@items[o:RDoc::Markup::ListItem:@label0;[o; ;[I"#getch;To;;0;[o; ;[I"#get_byte;To;;0;[o; ;[I" #scan;To;;0;[o; ;[I"#scan_until;To;;0;[o; ;[I" #skip;To;;0;[o; ;[I"#skip_until;T@S; ;i;I"Looking Ahead;T@o;;;;[ o;;0;[o; ;[I"#check;To;;0;[o; ;[I"#check_until;To;;0;[o; ;[I"#exist?;To;;0;[o; ;[I"#match?;To;;0;[o; ;[I" #peek;T@S; ;i;I"Finding Where we Are;T@o;;;;[ o;;0;[o; ;[I" #beginning_of_line? (#bol?);To;;0;[o; ;[I" #eos?;To;;0;[o; ;[I"#rest?;To;;0;[o; ;[I"#rest_size;To;;0;[o; ;[I" #pos;T@S; ;i;I"Setting Where we Are;T@o;;;;[o;;0;[o; ;[I"#reset;To;;0;[o; ;[I"#terminate;To;;0;[o; ;[I" #pos=;T@S; ;i;I"Match Data;T@o;;;;[o;;0;[o; ;[I" #matched;To;;0;[o; ;[I"#matched?;To;;0;[o; ;[I"#matched_size;To;;0;[o;;: LABEL;[o;;[I" ;T;[@o;;0;[o; ;[I"#pre_match;To;;0;[o; ;[I"#post_match;T@S; ;i;I"Miscellaneous;T@o;;;;[ o;;0;[o; ;[I"<<;To;;0;[o; ;[I"#concat;To;;0;[o; ;[I"#string;To;;0;[o; ;[I" #string=;To;;0;[o; ;[I"#unscan;T@o; ;[I"1There are aliases to several of the methods.;T: @fileI"ext/strscan/strscan.c;T:0@omit_headings_from_table_of_contents_below0;0;0[ [ [ [[I" class;T[[:public[[I"must_C_version;TI"ext/strscan/strscan.c;T[I"new;T@[:protected[ [:private[ [I" instance;T[[;[3[I"<<;T@[I"[];T@[I"beginning_of_line?;T@[I" captures;T@[I"charpos;T@[I" check;T@[I"check_until;T@[I" clear;T@[I"concat;T@[I"empty?;T@[I" eos?;T@[I"exist?;T@[I"fixed_anchor?;T@[I" get_byte;T@[I"getbyte;T@[I" getch;T@[I"inspect;T@[I"match?;T@[I"matched;T@[I" matched?;T@[I"matched_size;T@[I" peek;T@[I" peep;T@[I"pointer;T@[I" pointer=;T@[I"pos;T@[I" pos=;T@[I"post_match;T@[I"pre_match;T@[I" reset;T@[I" rest;T@[I" rest?;T@[I"rest_size;T@[I" restsize;T@[I" scan;T@[I"scan_full;T@[I"scan_until;T@[I"search_full;T@[I" size;T@[I" skip;T@[I"skip_until;T@[I"string;T@[I"string=;T@[I"terminate;T@[I"unscan;T@[I"values_at;T@[;[ [;[[I"initialize_copy;T@[ [U:RDoc::Context::Section[i 0o;;[ ;0;0[@ö@öcRDoc::TopLevel