регулярные выражения - извлечение текста "без мусора"
Доброго времени суток.
Есть текст: Код:
<td>Наличие<br>Рис фасованный: 5%<br>Гречка весовая: 36%<br>Морковка гнилая: 15%<br>Итого..... но получаю: либо последний извлеченный элемент Морковка гнилая: 15: var str='<td>Наличие<br>Рис фасованный: 5%<br>Гречка весовая: 36%<br>Морковка гнилая: 15%<br>Итого.....'; alert(str.match(/(?:(?:<br>)(.*?)%)+/i)); либо, всю строку начиная с <br>Рис и заканчивая Морковка гнилая: 15%: var str='<td>Наличие<br>Рис фасованный: 5%<br>Гречка весовая: 36%<br>Морковка гнилая: 15%<br>Итого.....'; alert(str.match(/((?:(?:<br>)(?:.*?)%)+)/i)); Подскажите пожалуйста, как правильно составить данное рег. выражение, с учетом того, что количество искомых фраз может разниться? З.Ы.: можно, конечно, сделать так: var str='<td>Наличие<br>Рис фасованный: 5%<br>Гречка весовая: 36%<br>Морковка гнилая: 15%<br>Итого.....'; alert(str.split('<br>'));но тогда в результат попадает лишний мусор, которого хотелось бы избежать З.Ы.Ы.: естественно - можно использовать модификатор g: var str='<td>Наличие<br>Рис фасованный: 5%<br>Гречка весовая: 36%<br>Морковка гнилая: 15%<br>Итого.....'; alert(str.match(/(?:(?:<br>)(.*?)%)/gi)); но проблема в том, что далее идет аналогичная конструкция, только получающая данные уже иначе и соответственно вместе они не работают при установленном параметре g т.к. они не чередуются а идут друг за другом к тому же, при использовании g, в тексте останутся <br> и % |
Цитата:
var str='<td>Наличие<br>Рис фасованный: 5%<br>Гречка весовая: 36%<br>Морковка гнилая: 15%<br>Итого.....'; alert(str.match(/<br>([\s\S]*?(?=%))/g)); Останется только убрать <br> |
Cache,
var str='<td>Наличие<br>Рис фасованный: 5%<br>Гречка весовая: 36%<br>Морковка гнилая: 15%<br>Итого.....'; alert(str.match(/[^>]+(?=%)/g)); |
Часовой пояс GMT +3, время: 13:01. |