Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Ruby: Общие вопросы > поиск в строке всех соответствий шаблону


Автор: hexzo 1.4.2011, 13:52
Есть строка. Есть шаблон. Надо найти в строке все соответствующие шаблону подстроки.
Можно конечно искать соответствующую шаблону подстроку, затем искать её в исходной строке, и обрезать исходную строку по её концу. А затем в обрезанной строке снова делать то же самое. Но мне кажется, что в руби для этого должны быть встроенные механизмы, а я их не нахожу.  smile 

Автор: hexzo 1.4.2011, 18:06
Для этой цели можно заюзать метод scan. А получить доступ к совпадениям можно с помощью переменной $~.
Код

"Fast orange fox jump over horse. Long long river. Deep deep forest.".scan(/(\w+[[:space:]]*)*[.]/){puts $~ }

P.S. ещё полезны $' и $`.

Автор: DeTeam 2.4.2011, 08:13
http://www.ruby-doc.org/core/classes/Regexp.html
http://www.ruby-doc.org/core/classes/Regexp.html#M001235 ? не то?

match

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)