/ / Need Regex, за да съответства на [# URL ^ Url Description ^ #] - c #, regex

Нуждаете се от Regex да съответства на [# URL ^ Url Description ^ #] - c #, regex

I need regex to find this text

[# URL ^ Описание на URL адреса ^ #]

в низ и го заменете

<a href="some link">Url Description</a>

"Url Description" може да бъде настроен на знаци на всеки език.

Всеки Regex експерти там, за да ми помогне?

Благодаря.

Отговори:

2 за отговор № 1

Може да е малко объркващо, но можете да използвате следното:

string str = @"[#URL^Url Description^#]";
var regex = new Regex(@"^[^^]+^([^^]+)^[^^]+$");
var result = regex.Replace(str, @"<a href=""some link"">$1</a>");

Първият ^ означава началото на низа;
Най- [^^]+ означава нещо, което не е карет характер;
Най- ^ е буквален карет;
Най- $ е края на низа.

По същество, той улавя всички герои между грижите (^) и го заменете между <a> тагове.

виждам Идеон демо.

Можете също да замените последния ред с това:

var result = regex.Replace(str, @"<a href=""" + link + @""">$1</a>");

Където link е променливата, съдържаща връзката, която искате да замените.


1 за отговор № 2

Защо не го използвате String.Replace()? Един регекс ще работи, но изглежда, форматът е добре дефиниран и регексите са по-трудни за четене.

string url = "[#URL^blah^#]";

string url_html = url.Replace("[#URL^", "<a href="http://www.somewhere.net">")
.Replace("^#]", "</a>");