damian
February 17, 2012, 5:35pm
1
W jaki najprostszy sposób można zrobić taka rzecz - usunąć ze stringa znaki ktore nie pasuja do danego regex-a
Np.
‘string-string’.metoda(/^[a-z_0-9]+$/)
chodzi o to zeby zostały tylko znaki pasujące do regex-a /^[a-z_0-9]+$/, wszystko inne zostało usunięte
apohllo
February 17, 2012, 5:43pm
2
'string-string'.gsub(/[^a-z_0-9]/,"")
przy założeniu, że chodzi Ci o pojedyncze znaki. Jeśli chcesz, żeby było to bardziej skomplikowane zapytanie, to zrobiłbym to tak:
result = ""
'string-string'.scan(/jakies-zapytanie/){|str| result << str }
Wtedy result będzie zawierał to na czym Ci zależy.
Arnvald
February 17, 2012, 5:47pm
3
jako regexp podajesz /[^a-z_0-9]+/
daszek (^) umieszczony na początku w [] oznacza negację, czyli dopasowuje wszystkie znaki poza wymienionymi.
Całość może wyglądać tak:
"string".gsub(/[^a-z0-9_]/,'')
O, widzę, że ktoś już mnie ubiegł