[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: preg_match offset и utf8
pablodiguerero
Не работает offset в preg_match. Вот такой паттерн
#<w:r[^>]*>(<w:rPr>(<w:[^\/]*\/>)*<\/w:rPr>)?<w:t[^>]*>([^>]*&amp;)(<\/w:t><\/w:r>(<w:[^\/]*\/>)?<w:r[^>]*>(<w:rPr>(<w:[^\/]*\/>)*<\/w:rPr>)?<w:t[^>]*>)?d(<\/w:t><\/w:r>(<w:[^\/]*\/>)?<w:r[^>]*>(<w:rPr>(<w:[^\/]*\/>)*<\/w:rPr>)?<w:t[^>]*>)?d(<\/w:t><\/w:r>(<w:[^\/]*\/>)?<w:r[^>]*>(<w:rPr>(<w:[^\/]*\/>)*<\/w:rPr>)?<w:t[^>]*>)?u(<\/w:t><\/w:r>(<w:[^\/]*\/>)?<w:r[^>]*>(<w:rPr>(<w:[^\/]*\/>)*<\/w:rPr>)?<w:t[^>]*>)?_(<\/w:t><\/w:r>(<w:[^\/]*\/>)?<w:r[^>]*>(<w:rPr>(<w:[^\/]*\/>)*<\/w:rPr>)?<w:t[^>]*>)?n(<\/w:t><\/w:r>(<w:[^\/]*\/>)?<w:r[^>]*>(<w:rPr>(<w:[^\/]*\/>)*<\/w:rPr>)?<w:t[^>]*>)?u(<\/w:t><\/w:r>(<w:[^\/]*\/>)?<w:r[^>]*>(<w:rPr>(<w:[^\/]*\/>)*<\/w:rPr>)?<w:t[^>]*>)?m(<\/w:t><\/w:r>(<w:[^\/]*\/>)?<w:r[^>]*>(<w:rPr>(<w:[^\/]*\/>)*<\/w:rPr>)?<w:t[^>]*>)?;([^<]*)<\/w:t><\/w:r>#u
inpost
Это очень безумный патерн. Даже не то, что сложный, ведь делает простые операции, как объемный. Надо знать исходную строку и то, что хочешь получить. Очень похож на парсинг какого-то кодирования, но тогда бы я посоветовал использовать XML, JSON, в которых уже встроен функционал парсера самим языком.
Как совет, то эту строчку кода [^>]*> - можно было бы проще заменить на: .*?> или .*> при условии, что жадный поиск отменён. Тогда и регулярка значительно меньше стала бы и удобнее читаемой для тебя самого.
<w:r text><w:t text>. Попробуй сократить входящие данные до меньшего числа аргументов, чтобы сам парсер был меньше и шаг за шагом анализируй каждый участок кода. Там намного проще будет самому его переписать или подправить.

У остальных же взрыв мозга laugh.gif

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.