Strings e expressões regulares (regexps)
Strings
Seguindo a "tradição" de várias linguagens script de UNIX, strings podem ser expressas por aspas duplas e simples, com propósitos diferentes.
As expressas com aspas duplas ('"') podem ter várias
substituições de "códigos de escape", como '\t' para tabulação
horizontal, '\n' para nova-linha, etc. (consulte o manual). Além
dessas substituições simples, podem ter substituições de qualquer expressão,
entre os caracteres #{}.
msg = "oi!"
puts "msg: #{msg}" # >> msg: oi!
puts "#{ def oi; 'tchau!'; end; oi }" # >> tchau!
puts %Q|Esta string pode ter " e '.| # >> Esta string pode ter " e '.
puts %q[Outra string.] # >> Outra string.
As strings expressas com aspas simples (''') podem ter apenas as
substituições de escape '\'' (que permite a existência de
''' sem indicar o término da string), e '\\' (que
permite a existência de uma '\' no fim da string, sem indicar a
substituição '\''). Quaisquer outros caracteres são tratados de
forma literal.
puts "1+1=#{1+1}" # >> 1+1=2
puts '1+1=#{1+1}' # >> 1+1=#{1+1}
Outras formas de expressar strings são usando a sintaxe
%q/string/, que equivale ao uso de aspas simples, e
%Q/string/, que equivale ao uso de aspas duplas. O caractere
delimitador '/' pode ser substituído por qualquer outro não
alfanumérico (por ex.: %Q(), %q||). Estas formas são
úteis nos casos de strings contendo muitas aspas simples ou duplas, de acordo
com o tipo de string utilizada. Ainda, é possível especificar strings ao longo
de várias linhas (here documents), e com diferentes funções, mas isso não
será explicado aqui. Consulte o manual,
na parte de sintaxe, na seção "line-oriented string literals".
Strings são objetos da classe String. Veja as suas
características e métodos disponíveis no manual
e no livro Programming
Ruby.
Expressões regulares
Expressões regulares são muito úteis no processamento de texto. Podem ser usadas, por exemplo, para separar campos, fazer buscas e substituições. As expressões regulares de Ruby são similares às de Perl, que por sua vez são similares às do comando egrep (UNIX/GNU/Linux/etc.). Caso você desconheça este comando, ele é usado para fazer buscas em arquivos, sugiro que dê uma olhada no seu manual ("man 1 egrep"), e/ou no manual da biblioteca GNU regex ("man 7 regex"). Porém, Ruby tem extensões a estas regexps. Consulte o livro Programming Ruby para uma referência completa.
Elas são expressas entre dois caracteres '/', ou, de forma
semelhante às strings, %r//.
r = /oi!/ # >> busca a string oi! r = /^print/ # >> busca a string print em começo de linha