我需要一个正则表达式将一个字符串转换为一个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>")
答案 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)
你的正则表达式有问题因为')'没有'('
将:
<bkz:\s+((?:.(?!>))+?.)>
工作得更好?
第一组将捕获您的目标。
答案 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>