# File lib/stringex/string_extensions.rb, line 135
135:     def convert_misc_characters(options = {})
136:       dummy = dup.gsub(/\.{3,}/, " dot dot dot ") # Catch ellipses before single dot rule!
137:       # Special rules for money
138:       {
139:         /(\s|^)\$(\d+)\.(\d+)(\s|$)/ => '\2 dollars \3 cents',
140:         /(\s|^)£(\d+)\.(\d+)(\s|$)/u => '\2 pounds \3 pence',
141:       }.each do |found, replaced|
142:         replaced = " #{replaced} " unless replaced =~ /\\1/
143:         dummy.gsub!(found, replaced)
144:       end
145:       # Back to normal rules
146:       misc_characters = 
147:       {
148:         /\s*&\s*/ => "and",
149:         /\s*#/ => "number",
150:         /\s*@\s*/ => "at",
151:         /(\S|^)\.(\S)/ => '\1 dot \2',
152:         /(\s|^)\$(\d*)(\s|$)/ => '\2 dollars',
153:         /(\s|^)£(\d*)(\s|$)/u => '\2 pounds',
154:         /(\s|^)¥(\d*)(\s|$)/u => '\2 yen',
155:         /\s*\*\s*/ => "star",
156:         /\s*%\s*/ => "percent",
157:         /(\s*=\s*)/ => " equals ",
158:         /\s*\+\s*/ => "plus"
159:       }
160:       misc_characters[/\s*(\\|\/)\s*/] = 'slash' unless options[:allow_slash]
161:       misc_characters.each do |found, replaced|
162:         replaced = " #{replaced} " unless replaced =~ /\\1/
163:         dummy.gsub!(found, replaced)
164:       end
165:       dummy = dummy.gsub(/(^|\w)'(\w|$)/, '\1\2').gsub(/[\.,:;()\[\]\?!\^'"_]/, " ")
166:     end