ruby rspec et les chaînes de caractères comparaison

Je ne suis pas un expert ruby et peut-être cela va sembler une question stupide...mais je suis trop courious sur une curiosité (je pense) que j'ai trouvé dans RSpec matcher " match.

Vous savez match prend en entrée une chaîne de caractères ou une expression régulière. Exemple:

"test".should match "test" #=> will pass
"test".should match /test/ #=> will pass

L'étrange commence lorsque vous insérez spécial de la regex de caractères dans la chaîne d'entrée:

"*test*".should match "*test*" #=> will fail throwing a regex exception

Cela signifie (je pense) que les chaînes de caractères sont interprétés comme des regex, je dois l'échappement de regex personnages pour en faire des œuvres:

"*test*".should match "\*test\*" #=> will fail with same exception
"*test*".should match /\*test\*/ #=> will pass

À partir de cette base de test, je comprends que match traite les chaînes d'entrée comme des expressions régulières, mais il ne vous permet pas d'échapper regex caractères.

Suis-je fidèle? N'est-ce pas un comportement singulier? Je veux dire, c'est une chaîne ou une expression régulière regex!


MODIFIER APRÈS LA RÉPONSE:

Suivantes DigitalRoss (à droite) répondez à la suite de tests passés:

"*test*".should match "\\*test\\*" #=> pass
"*test*".should match '\*test\*' #=> pass
"*test*".should match /\*test\*/ #=> pass

OriginalL'auteur Emiliano Poggi | 2011-04-24