Как я могу извлечь слова из этой строки "!! один !! ** два ** @@ три @@", используя Regex в Ruby - PullRequest
1 голос
/ 08 октября 2010

В IRB я могу сделать это:
c = / (\ b \ w + \ b) \ W * (\ b \ w + \ b) \ W * (\ b \ w + \ b) \ W * /. match ("!! one ** * два * @@ три @@ ")

И получите это:
=> MatchData "один ** * два * @@ three @@" 1: "один" 2: "два" 3: "три"

Но если я заранее не знаю количество слов, как я могу извлечь все слова из строки ". Например, это может быть" !! one ** * two * @@ three @@ "в одном случае, но может быть" !! пять ** * шесть * "в другом случае.

Спасибо.

1 Ответ

4 голосов
/ 08 октября 2010
> " !!one** *two* @@three@@ ".scan(/\w+/)
=> ["one", "two", "three"]

Также scan может возвращать массив массивов в случае использования ().

> "Our fifty users left 500 posts this month.".scan(/([a-z]+|\d+)\s+(posts|users)/i)
=> [["fifty", "users"], ["500", "posts"]]

http://ruby -doc.org / ядро ​​/ классов / String.html # M000812

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...