正则表达式将子字符串转换为链接

时间:2008-11-16 09:33:42

标签: asp.net vb.net regex string

我需要一个正则表达式将一个字符串转换为一个link.i写了一些东西,但它在asp.net.i无法解决,并且我在正则表达式中是新的。这个函数将(bkz:string)转换为(bkz) :show.aspx?td = string)

Dim pattern As String = "<bkz[a-z0-9$-$&-&.-.ö-öı-ış-şç-çğ-ğü-ü\s]+)>"
Dim regex As New Regex(pattern, RegexOptions.IgnoreCase)
str = regex.Replace(str, "<a href=""show.aspx?td=$1""><font color=""#CC0000"">$1</font></a>")

3 个答案:

答案 0 :(得分:3)

关于你的代码的通用评论:除了没有开括号之外,你做了多余的事情:$ - $不正确但可以简化为$ only。同样的重音字符 每个人都会告诉你,即使在纯HTML中也不推荐使用font标签:赞助带有style属性的span。

根据您的问题和回复中的示例,我认为表达式可能类似于:

\(bkz: ([a-z0-9$&.öışçğü\s]+)\)

替换字符串看起来像:

(bkz: <a href=""show.aspx?td=$1""><span style=""color: #C00"">$1</span></a>)

但是第一个$ 1必须实际是URL编码。

答案 1 :(得分:0)

你的正则表达式有问题因为')'没有'('

将:

&lt;bkz:\s+((?:.(?!&gt;))+?.)&gt;

工作得更好?

第一组将捕获您的目标。

答案 2 :(得分:0)

感谢Vonc,现在它不会引发错误但是当我将str分配给Label.Text时,我也看不到链接。示例在我将str绑定到我的标签之后,应该在view-source中查看;

<span id="Label1">(bkz: <a href="http://www.mysite.com?t=here">here</a>)</span>

但现在,它位于viewsource源中;

<span id="Label1">(bkz: here)</span>