Is it possible using #scan or any other method of StringScanner to get
access to captured sub-expressions in the supplied regexp?
For example, something like:
ss = StringScanner.new( "Hello __World__" )
while ...
if md = ss.scan( /__([^_]+)__/ )
# I would like md to be a MatchData, not a String
# because I want access to the first capture;
# $1 (which I dislike on principle anyway) is not
# updated by the call to #scan
end
end
If the answer is 'no'...might this be a good addition? Perhaps as a new
method (in case returning a MatchData was much slower than a String)?
Phrogz wrote:
Is it possible using #scan or any other method of StringScanner to get
access to captured sub-expressions in the supplied regexp?
For example, something like:
ss = StringScanner.new( "Hello __World__" )
while ...
if md = ss.scan( /__([^_]+)__/ )
# I would like md to be a MatchData, not a String
# because I want access to the first capture;
# $1 (which I dislike on principle anyway) is not
# updated by the call to #scan
end
end
If the answer is 'no'...might this be a good addition? Perhaps as a new
method (in case returning a MatchData was much slower than a String)?
Read the docs ![:slight_smile: :slight_smile:](https://emoji.discourse-cdn.com/twitter/slight_smile.png?v=12)
http://www.ruby-doc.org/stdlib/libdoc/strscan/rdoc/classes/StringScanner.html
http://www.ruby-doc.org/stdlib/libdoc/strscan/rdoc/classes/StringScanner.html#M000039
use #
ss[1] is like $1
-Charlie
Thanks muchly (to Logan as well)!
···
--
Gavin "What's RTFM mean?" Kistner