Предлагаю помериться... Человеко-часами

D
На сайте с 31.01.2017
Offline
15
#91
Aisamiery:
Специально для вас, читабильность немного потерялось, но на то они и регулярные выражения.

Magic:
s/\[(((?!(a|\/a)).+?)|(\/?[\w]+){2})\]//g;

Это не вам адресовалось:). Но все равно "бьется" строка:

[a href="/kontakt" title="Контакт"][[[А тут текст со скобочками]]][/a]

Результат:

[a href="/kontakt" title="Контакт"]]][/a]
Aisamiery
На сайте с 12.04.2015
Offline
293
#92
silicoid:
мой вариант сожрал, как не странно ))

Поправьте меня, если я ошибся в вашем варианте

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
D
На сайте с 31.01.2017
Offline
15
#93
silicoid:
мой вариант сожрал, как не странно ))

Потому что, что ваш:

silicoid:
так замените на preg_replace('/\[(\w+)(\]|.*\])(.*)\[\/\\1\]/imU', '$3', $input);
и на вас снова наступит счастье

Что мой:

demiux:
s/<((?!a[\s>])[^\s>]+)[^>]*>(.+?)<\/\1>/$2/gi;

Работают по одной аналогии.

S
На сайте с 13.10.2014
Offline
171
#94

[offtop mode on]

кстати в Яндекс нужны хорошие программисты на Перле. С ног сбились найти не могут!

---------- Добавлено 17.02.2017 в 14:12 ----------

Aisamiery, а что ошиблись?

Условие: парсинг первого уровня -- работает.

Теги исключительно словоподобные -- работает.

Открывающий и закрывающий теги одинаковые -- тоже работает

Aisamiery
На сайте с 12.04.2015
Offline
293
#95
demiux:
Это не вам адресовалось:). Но все равно "бьется" строка:

Тут уже совсем что то монстроузорное получается ))) Пойду в общем работать :)

Да надо было распарсивать теги а не просто их сносить)))

D
На сайте с 31.01.2017
Offline
15
#96
s/\[((?!a[\s\]])[^\s\]]+)[^\]]*\](.+?)\[\/\1\]/$2/gi;

Вот вариант для скобочек.

---------- Добавлено 17.02.2017 в 13:17 ----------

silicoid:
[offtop mode on]
кстати в Яндекс нужны хорошие программисты на Перле. С ног сбились найти не могут!

Я ушел с головой в js/node.js

S
На сайте с 13.10.2014
Offline
171
#97

кстати. Можно мой вариант еще подсократить, preg_replace('/\[(\w+).*\](.*)\[\/\1\]/imU', '$2', $input)

mendel
На сайте с 06.03.2008
Offline
183
#98
miltorg:
С формы отправляем кучу всего. Проверяем на правильность ввода. Записываем в базу. Выводим полученный результат...

Это типа вот так?

Создать форму (в шаблоне):


<?=view('widget/form',$model);?>

Получить из POST и сразу проверить на валидность всех полей:


$model = s()->post->getModel('feedback');

Если всё введено правильно, то сохраним и редиректим, если еще ничего не введено или введено с ошибками, то выведем форму (с сообщениями об ошибках у каждого поля, если есть ошибки).


if(!$model->isNew() AND $model->isValid()) {
$model->save();
redirect(['index:index']);
} else {
$page->model = $model;
$page->show();
}

9 строк, задача чуть пошире чем у вас.

3 минуты на написание, и что самое главное -задача уже решена. В стандартном контроллере. Нужно просто указать нужный контроллер. Ни одной строки.

А вот если нужно кастомизировать. Сделать красивый дизайн и т.п. Тут уже может и несколько часов возникнуть. особенно с выяснениями потребностей клиента).

Шутку любишь над Фомой, так люби и над собой. (с) народ. Бесплатные списки читабельных(!) свободных доменов (http://burzhu.net/showthread.php?t=2976) (5L.com) Сайты, All inclusive. 5* (/ru/forum/962215)
D
На сайте с 31.01.2017
Offline
15
#99
silicoid:
кстати. Можно мой вариант еще подсократить, preg_replace('/\[(\w+).*\](.*)\[\/\1\]/imU', '$2', $input)

Разрешите докопаться:). Но тоже ломается об:

[a href="/kontakt" title="Контакт"][[[А тут текст внутри ссылки со скобочками]]][/a]

http://sandbox.onlinephpfunctions.com/code/462f5c5e896c1ac2a0d3bf722c9295ad28de6537

S
На сайте с 13.10.2014
Offline
171
#100

demiux, Так текст в скобках должен выводиться вместе со скобками (так как он не является ббкодом).

если вам нужно выпилить скобки, пройдитесь второй раз чистилкой

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий