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>");