да и не нравится мне идея для каждогопользователя парсить в хтмл. проще при редактировании делать обратную замену.
скажем так, я сделал то что мне надо, но ради интереса, как говориться, хотел бы поссмотреть как это делается на регулярками. если вдруг у вас будет время и получиться, буду рад понять как должно быть правильно. честно сказать я не думал что это уж такое сложное задание ))
По п3. Идея не плохая, и устраняет ту проблему о которой вы писали, и благодаря ей, я решил обратную проблему сначала в упрощенном варианте https://regex101.com/r/dS7nT0/5 а потом и в полном https://regex101.com/r/dS7nT0/6. А проблема то была в <(?!div>, хотя если честно то я просто ошибся, но оно работает, правда логика теперь стала не понятна. Ведь должно искать закрывающийся тег... Но ведь работает. ) ,по крайней мере на сайте!
---------- Добавлено 30.11.2015 в 08:42 ----------
edogs: В "обратном" варианте и отличий больше и открывающий тэг содержит в себе часть закрывающего.
Подумал если рассматривать открывающися эл-т как цельную единицу, то не вижу проблемы описанной вами, но, может и ошибаюсь.! ))
---------- Добавлено 30.11.2015 в 10:25 ----------
к сожалению с preg_replace_callback не работает... странно конечно.
2. я понимаю что такое ?: как | и даже немного ?!, но я не понимаю но я все же не понимаю логики данного разбора. Начало и конец- понятно, вырезали. (?R) как бы смыл тоже понятен, хотя не поняно почему стоит именно там, но вот смысл любой символ не скобка* или [ Негативный просмотр вперёд (с отрицанием) (это зачем тут?) /? - те как открытый так и закрытый тег. spoiler] - тоже понятно.
siv1987: 1. Запретить вложенность ббкодов.
2. Написать рекурсивное регулярное выражение.
3. Выполнить циклическую замену. Проходите один раз текст, проходите второй до тех пор пока не найдутся совпадения.
ну тогда вы забыли и как минимум 4 вариант, тупо менять
ув. модератры. вопросы по клиганику у меня все же остались, так как нет полного и четкого пониания, цена за 1000 показов тоже не такая как было заявлено, но, наверное лохотрон, в названии темы лишний. уберите пожалуйста. показы откручивают - деньги выплачивают, в теме отвечают. наверное не подходящее слово было мной использовано, не хочу плодить несправедливость.
Где так удаляют*?Было бы замечательно, а то мой сайт взяли перевели на дргой язык, причем машинным переводчиком, а яндекса все устраивает ))), говорит в таких вопросах он не разбирается...
ббкоды
очень много записей надо будет корвертировать.
да и не нравится мне идея для каждогопользователя парсить в хтмл. проще при редактировании делать обратную замену.
скажем так, я сделал то что мне надо, но ради интереса, как говориться, хотел бы поссмотреть как это делается на регулярками. если вдруг у вас будет время и получиться, буду рад понять как должно быть правильно. честно сказать я не думал что это уж такое сложное задание ))
---------- Добавлено 30.11.2015 в 19:47 ----------
Не уловили что именно не работает, но если важно разобраться - приведите код "как есть" и укажите на конкретную проблему.
не раотает обратное преобразование html2bb , конкретно для спойлера.
не смотря на то что сама регулярка https://regex101.com/r/dS7nT0/5 работает.
По поводу скобки не знал, спасибо.
По п3. Идея не плохая, и устраняет ту проблему о которой вы писали, и благодаря ей, я решил обратную проблему сначала в упрощенном варианте https://regex101.com/r/dS7nT0/5 а потом и в полном https://regex101.com/r/dS7nT0/6. А проблема то была в <(?!div>, хотя если честно то я просто ошибся, но оно работает, правда логика теперь стала не понятна. Ведь должно искать закрывающийся тег... Но ведь работает. ) ,по крайней мере на сайте!
---------- Добавлено 30.11.2015 в 08:42 ----------
В "обратном" варианте и отличий больше и открывающий тэг содержит в себе часть закрывающего.
Подумал если рассматривать открывающися эл-т как цельную единицу, то не вижу проблемы описанной вами, но, может и ошибаюсь.! ))
---------- Добавлено 30.11.2015 в 10:25 ----------
к сожалению с preg_replace_callback не работает... странно конечно.
я думаю мне проще будет задать вопросы того чего я действительно не понимаю )
за ответ выше конечно спасибо.
итак
https://regex101.com/r/oG3lT9/1
1. что я не понимаю.
почему одни скобки экранируются [ а вторые нет ]?
2. я понимаю что такое ?: как | и даже немного ?!, но я не понимаю но я все же не понимаю логики данного разбора. Начало и конец- понятно, вырезали. (?R) как бы смыл тоже понятен, хотя не поняно почему стоит именно там, но вот смысл любой символ не скобка* или [ Негативный просмотр вперёд (с отрицанием) (это зачем тут?) /? - те как открытый так и закрытый тег. spoiler] - тоже понятно.
3. делаю обратную функцию https://regex101.com/r/dS7nT0/1 что-то не работает. подскажите где лажанул?
может несколько сумбурно, но я учусь ))
спасибо
спасибо ответившим, едогс снова рад вас видеть.
урл исправил, был не прав, очипятка
рекурсивное решение на самом деле есть, но, почему-то мне не нравится, уж больно запутанное
вот от сюда http://php.ru/manual/function.preg-replace-callback.html
думал тут предложат изящнее решение.
тогда прошу вашей помощи понять вот это регулярное выражение
---------- Добавлено 29.11.2015 в 22:06 ----------
не могу вставить регулярное выражение, не думал что с этим будет проблема здесь на форуме
---------- Добавлено 29.11.2015 в 22:09 ----------
рекурсивные выражения. разбор html и ббкодов.
может я не так ищу, но ничего не нашел.
1. Запретить вложенность ббкодов.
2. Написать рекурсивное регулярное выражение.
3. Выполнить циклическую замену. Проходите один раз текст, проходите второй до тех пор пока не найдутся совпадения.
ну тогда вы забыли и как минимум 4 вариант, тупо менять
[spoiler] -> <div class="spoiler-header">Спойлер: показать</div><div class="spoiler-block">
а
[/spoiler] -> </div>
по пунктам.
1. не актуально.
2. думаю на этот вопрос я и хотел бы получить ответ
3. этот совет из серии побольше гемора. во первых точно такое же регулярное выражение надо будет для правильного обхода
дело в том что я с ними и не работаю. просто хотел забрать свои деньги.
ой. а скажите. у вас в банерах люксадв.ком , торсы теток тизеры, это дешевая реклама.
те если я создал новый блок нужно отключать эту рекламу?
ув. модератры. вопросы по клиганику у меня все же остались, так как нет полного и четкого пониания, цена за 1000 показов тоже не такая как было заявлено, но, наверное лохотрон, в названии темы лишний. уберите пожалуйста. показы откручивают - деньги выплачивают, в теме отвечают. наверное не подходящее слово было мной использовано, не хочу плодить несправедливость.
спасибо.
Где так удаляют*?Было бы замечательно, а то мой сайт взяли перевели на дргой язык, причем машинным переводчиком, а яндекса все устраивает ))), говорит в таких вопросах он не разбирается...