у меня есть эта строка
string = "<p>para1</p><p>para2</p><p>para3</p>"
Я хочу разделить текст на para2, чтобы я получил это
["<p>para1</p>", "<p>para3</p>"]
Загвоздка в том, что иногда para2 может не заключаться в теги p (и могут быть дополнительные пробелы вне p и внутри него). Я думал, что это сделает это:
string.split(/\s*(<p>)?\s*para2\s*(<\/p>)?\s*/)
но я понял:
["<p>para1</p>", "<p>", "</p>", "<p>para3</p>"]
это не тянет начальный и конечный теги p в соответствующий шаблон - они должны быть удалены как часть разделения. Регулярные выражения Ruby по умолчанию жадные, поэтому я подумал, что они будут извлечены. И это, кажется, подтверждается, если я делаю gsub вместо разбиения:
string.gsub(/\s*(<p>)?\s*para2\s*(<\/p>)?\s*/, "XXX")
=> "<p>para1</p>XXX<p>para3</p>"
Они втягиваются и отсюда избавляются, но не на расколе. Любые идеи кто-нибудь?
спасибо, макс.