Замена токена - PullRequest
       59

Замена токена

2 голосов
/ 24 марта 2010

В настоящее время я реализую функцию замены в методе рендеринга страницы, которая заменяет часто используемые строки - например, заменяет [cfe] на корень клиентского интерфейса. Это связано с тем, что значение может отличаться в зависимости от версии сайта - например, корнем для папки с изображениями ([imagepath]) является / Images в процессе разработки и в реальном времени, но / Test / Images в тесте.

У меня есть каталог продуктов, для которого я хотел бы изменить [productName] на ссылку на страницу каталога для этого продукта. Я хотел бы просмотреть всю страницу и заменить все экземпляры [someValue] соответствующей ссылкой. В настоящее время я делаю это, просматривая все продукты в базе данных продуктов и заменяя [productName] ссылкой на страницу каталога для этого продукта. Однако это ограничено продуктами, которые существуют в базе данных. «Ссылки» на продукты, которые были удалены в настоящее время, заменены не будут, поэтому пользователю будет отображаться [someValue]. Это не выглядит хорошо.

Так что вы должны увидеть мою проблему из этого. Кто-нибудь знает способ достичь того, что я хотел бы легко? Я мог бы использовать регулярные выражения, но у меня не так много опыта. Если это самый простой способ, с использованием «Для каждого совпадения в виде строки в регулярном выражении. Бла, бла»), то я хочу изучить это подробнее.

Однако в какой-то момент я хотел бы пойти дальше - например, настроить макеты страниц, такие как 3 столбца с верхним правым изображением, используя [layout type = "3colImageTopRight" imageURL = "imageURL"] Содержимое здесь [/ layout]. Я думаю, что мог бы сделать это сейчас, но я не могу понять, как с этим справиться, если бы imageURL был, скажем, [Image: Product01.gif] (используя regex.match ("[[a-zA-Z] { 0,}] ") Я думаю, что будет соответствовать просто [layout type =" 3colImageTopRight "imageURL =" [Image: Product01.gif] (это не дойдет до конца тега макета). Очевидно, что вышеупомянутое не вполне работает, так как Я не включил двойные кавычки в строку совпадения или что-то в этом роде, но вы поймете общую идею. Вы должны быть в состоянии получить общее представление о том, к чему я клоню и что я пытаюсь сделать.

Есть ли у кого-нибудь идеи или указатели, которые могли бы помочь мне в этом? Также, если это не совсем замена токена, пожалуйста, укажите мне, что это такое, чтобы я мог дальше развивать это.

Аристос - надеюсь, что повторное объяснение разрешит путаницу.

Заранее спасибо,

С уважением,

Ричард Кларк

1 Ответ

0 голосов
/ 14 декабря 2010

@ RichardClarke - я бы пошел с регулярными выражениями, их освоить не так страшно, как вы думаете, и с небольшим внимательным использованием решит ваши проблемы.

Я всегда находил этот инструмент очень полезным.

 http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx

отлично сочетается с шпаргалкой; -)

 http://www.addedbytes.com/cheat-sheets/regular-expressions-cheat-sheet/

Удачи.

...