В цілому - так, потрібно одне регулювання на весь лист, але це що стосується однієї сутності, тобто для товарів ви пишете загальну регулярку, починаючи з самого першого символу в тексті.
Існують різні модифікатори, вони допомагають обробляти вміст, бо тут дуже багато нюансів.
Ось сервіс, де можна тестувати
https://regex101.com, він може знайти тільки перший елемент, далі вже не виходить так як нахопить модифікаторів, не знаю як без них це зробити.
так було:
p\sclass="text-left code".*?>[#product_articul]\s.*?<\/p>\n\W*p\sclass="name".*?>[#product_name]<\ /p>\n.*<\/th><\/tr><\/tbody><\/table><\/th>\n.*<th\sclass="small-3\slarge-2\ scolumns".*?><table.*?><tbody><tr.*?><th.*?>\n\W*p\sclass="quantity".*?>[#product_count]\s. *?<\/p>\n.*?<\/th><\/tr><\/tbody><\/table><\/th>\n.*?<th.*?><table .*?><tbody><tr.*?><th.*?>\n\W*p\sclass="price".*?<\/p>\n\W*p\sclass="one_price ".*?>[#product_price]\s.*?<\/p>
Так сталося:
<tbody>.*?<p\sclass=\"text\-left\scode\".*?padding:\s0\; text\-align\:\sleft\;\">[#product_articul]\s.*?<\/p>.*?<p\sclass="name".*?padding:\s0\; text\- align\:\sleft\;\">[#product_name]<\/p>.*?<p class="quantity".*?padding:\s0\; text\-align\:\sright\;\">[#product_count]шт.*?<p class="price".*?padding:\s0\; text\-align\:\sright\;\"> [#product_price]UAH
+ модифікатор
А це для перевірки у сервісі
<tbody>.*?<p\sclass=\"text\-left\scode\".*?padding:\s0\; text\-align\:\sleft\;\">(.*?)\s.*?<\/p>.*?<p\sclass="name".*?padding:\s0\; text\ -align\:\sleft\;\">(.*?)<\/p>.*?<p class="quantity".*?padding:\s0\; text\-align\:\sright\;\">(.*?)шт.*?<p class="price".*?padding:\s0\; text\-align\:\sright\;\" >(.*?)UAH
Знаходить
Просто регулярна неправильна була