Глобальная функция замены RegEx для создания HTML из квадратных скобок []

У меня есть существующий код, который выглядит примерно так:

[tag:cb cbid="12345" cbwidth="200" cbclassname="calloutbox" cbposition="left"] Lorem ipsum dolor sit amet, consectetur adipiscing elit.
[tag:cb cbid="123" cbwidth="200" cbclass="calloutbox2" cbposition="left"] Suspendisse eleifend enim a magna pretium porttitor.

Мне нужно написать глобальную функцию VB .Net, которая будет соответствовать этим [tag:cb] и принять необязательные параметры и переписать строку с HTML-тегами.

<div id="12345" width="200" class="calloutbox" position="left">content (based on id)</div>

Любая помощь приветствуется. Благодарю.

1 ответ

Решение

Вот начало:

^\[tag:cb([^\]]*)\](.*)$

А затем вы используете группу 1 и 2 для создания новой строки:

<div$1>$2</div>

Это сгенерирует что-то вроде:

<div cbid="12345" cbwidth="200" cbclassname="calloutbox" cbposition="left"> Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div>
<div cbid="123" cbwidth="200" cbclass="calloutbox2" cbposition="left"> Suspendisse eleifend enim a magna pretium porttitor.</div>

Проблема в том, что он по-прежнему будет иметь такие атрибуты, как cbid="123" вместо id="123", Желательно, чтобы вы пропустили его через другое регулярное выражение, чтобы заменить все вхождения cb([^=]*) и заменить на группу захвата 1.

Это вывело бы следующее:

<div id="12345" width="200" classname="calloutbox" position="left"> Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div>
<div id="123" width="200" class="calloutbox2" position="left"> Suspendisse eleifend enim a magna pretium porttitor.</div>

Все, что вам нужно сделать сейчас, это реализовать его в VB .Net:)

Вы можете увидеть первую часть в действии здесь: http://regexr.com/?2vbkq
и вторая часть здесь: http://regexr.com/?2vbl3

Другие вопросы по тегам