Potrzebuję konwertować ciąg znaków jak "/ [\ w \ s] + /" do wyrażenia regularnego.Konwertuj ciąg na wyrażenie regularne ruby
"/[\w\s]+/" => /[\w\s]+/
Próbowałem przy użyciu różnych metod Regexp
jak:
Regexp.new("/[\w\s]+/") => /\/[w ]+\//
, podobnie Regexp.compile
i Regexp.escape
. Ale żaden z nich nie wraca tak jak się spodziewałem.
Co więcej Próbowałem usuwanie backslashy:
Regexp.new("[\w\s]+") => /[w ]+/
Ale nie mają szczęścia.
Następnie próbowałem zrobić to proste:
str = "[\w\s]+"
=> "[w ]+"
on ucieka. Jak teraz łańcuch może pozostać niezmieniony i przekonwertować go na obiekt regexp?
Właśnie dowiedziałem się, że _can't_ dołączeniu opcje w ten sposób, takie jak '/ # {your_regex}/# {options}'. – pduersteler
Przypuszczam, że mówisz o Railsach? 'options' jest hasłem, a Ruby nie jest soooo dynamic =) –
Ah, tak. Próbowałem przekazać "ix" :) – pduersteler