ÿØÿà JFIF    ÿÛ „  ( %!1!%)+//.383,7(-.+  -%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ     ÿÄ J    ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ   ÿÄ *  !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú "SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5 ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍѶ¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e ríV ?> ......................................... ............................................................................. ÿØÿà JFIF    ÿÛ „  ( %!1!%)+//.383,7(-.+  -%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ     ÿÄ J    ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ   ÿÄ *  !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú "SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5 ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍѶ¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e ríV ?> ......................................... ............................................................................. ???????????????????????????????????? ???????????????????????????????????? ÿØÿà JFIF    ÿÛ „  ( %!1!%)+//.383,7(-.+  -%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ     ÿÄ J    ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ   ÿÄ *  !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú "SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5 ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍѶ¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e ríV ?> ......................................... ............................................................................. ÿØÿà JFIF    ÿÛ „  ( %!1!%)+//.383,7(-.+  -%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ     ÿÄ J    ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ   ÿÄ *  !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú "SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5 ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍѶ¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e ríV ?> ......................................... ............................................................................. ???????????????????????????????????? ???????????????????????????????????? U:RDoc::TopLevel[ iI"character_selectors.rdoc:ETcRDoc::Parser::Simpleo:RDoc::Markup::Document: @parts[%S:RDoc::Markup::Heading: leveli: textI"Character Selectors;To:RDoc::Markup::BlankLineS; ; i; I"Character Selector;T@ o:RDoc::Markup::Paragraph;[I"UA _character_ _selector_ is a string argument accepted by certain Ruby methods. ;TI"LEach of these instance methods accepts one or more character selectors:;T@ o:RDoc::Markup::List: @type: BULLET: @items[o:RDoc::Markup::ListItem: @label0;[o; ;[I"=String#tr(selector, replacements): returns a new string.;To;;0;[o; ;[I"AString#tr!(selector, replacements): returns +self+ or +nil+.;To;;0;[o; ;[I"?String#tr_s(selector, replacements): returns a new string.;To;;0;[o; ;[I"CString#tr_s!(selector, replacements): returns +self+ or +nil+.;To;;0;[o; ;[I"MString#count(*selectors): returns the count of the specified characters.;To;;0;[o; ;[I"5String#delete(*selectors): returns a new string.;To;;0;[o; ;[I"9String#delete!(*selectors): returns +self+ or +nil+.;To;;0;[o; ;[I"6String#squeeze(*selectors): returns a new string.;To;;0;[o; ;[I":String#squeeze!(*selectors): returns +self+ or +nil+.;T@ o; ;[I"GA character selector identifies zero or more characters in +self+ ;TI",that are to be operands for the method.;T@ o; ;[I"JIn this section, we illustrate using method String#delete(selector), ;TI"+which deletes the selected characters.;T@ o; ;[I"EIn the simplest case, the characters selected are exactly those ;TI"&contained in the selector itself:;T@ o:RDoc::Markup::Verbatim;[ I"/'abracadabra'.delete('a') # => "brcdbr" ;TI"-'abracadabra'.delete('ab') # => "rcdr" ;TI",'abracadabra'.delete('abc') # => "rdr" ;TI"0'0123456789'.delete('258') # => "0134679" ;TI"1'!@#$%&*()_+'.delete('+&#') # => "!@$%*()_" ;TI"2'тест'.delete('т') # => "ес" ;TI"='こんにちは'.delete('に') # => "こんちは" ;T: @format0o; ;[I"3Note that order and repetitions do not matter:;T@ o;;[I",'abracadabra'.delete('dcab') # => "rr" ;TI"0'abracadabra'.delete('aaaa') # => "brcdbr" ;T;0o; ;[I"KIn a character selector, these three characters get special treatment:;T@ o;;;;[o;;0;[o; ;[I"BA leading caret ('^') functions as a "not" operator ;TI"%for the characters to its right:;T@ o;;[I",'abracadabra'.delete('^bc') # => "bcb" ;TI",'0123456789'.delete('^852') # => "258" ;T;0o;;0;[o; ;[I":A hyphen ('-') between two other characters ;TI"Kdefines a range of characters instead of a plain string of characters:;T@ o;;[I"+'abracadabra'.delete('a-d') # => "rr" ;TI"/'0123456789'.delete('4-7') # => "012389" ;TI",'!@#$%&*()_+'.delete(' -/') # => "@^_" ;TI" ;TI"(# May contain more than one range. ;TI"-'abracadabra'.delete('a-cq-t') # => "d" ;TI" ;TI"2# Ranges may be mixed with plain characters. ;TI"/'0123456789'.delete('67-950-23') # => "4" ;TI" ;TI"+# Ranges may be mixed with negations. ;TI"2'abracadabra'.delete('^a-c') # => "abacaaba" ;T;0o;;0;[o; ;[I"IA backslash ('\') acts as an escape for a caret, a hyphen, ;TI"or another backslash:;T@ o;;[ I"5'abracadabra^'.delete('\^bc') # => "araadara" ;TI"2'abracadabra-'.delete('a\-d') # => "brcbr" ;TI"9"hello\r\nworld".delete("\r") # => "hello\nworld" ;TI":"hello\r\nworld".delete("\\r") # => "hello\r\nwold" ;TI"9"hello\r\nworld".delete("\\\r") # => "hello\nworld" ;T;0S; ; i; I"!Multiple Character Selectors;T@ o; ;[I"@These instance methods accept multiple character selectors:;T@ o;;;;[ o;;0;[o; ;[I"MString#count(*selectors): returns the count of the specified characters.;To;;0;[o; ;[I"5String#delete(*selectors): returns a new string.;To;;0;[o; ;[I"9String#delete!(*selectors): returns +self+ or +nil+.;To;;0;[o; ;[I"6String#squeeze(*selectors): returns a new string.;To;;0;[o; ;[I":String#squeeze!(*selectors): returns +self+ or +nil+.;T@ o; ;[I"FIn effect, the given selectors are formed into a single selector ;TI"Pconsisting of only those characters common to _all_ of the given selectors.;T@ o; ;[I"RAll forms of selectors may be used, including negations, ranges, and escapes.;T@ o; ;[I"7Each of these pairs of method calls is equivalent:;T@ o;;[ I" s.delete('abcde', 'dcbfg') ;TI"s.delete('bcd') ;TI" ;TI"s.delete('^abc', '^def') ;TI"s.delete('^abcdef') ;TI" ;TI"s.delete('a-e', 'c-g') ;TI"s.delete('cde');T;0: @file@:0@omit_headings_from_table_of_contents_below0