我想要做的是用超链接替换文本字符串中的域。
所以domain.com
,www.domain.com
,http://domain.com
,http://www.domain.com
等替换为<a href="http://www.domain.com">
是否可以一次性更换所有这些,所以我不必做一堆替换声明?考虑先用一个独特的占位符替换每个占位符,然后用链接替换它们,这样我就不必担心重新替换字符串了。
或者也许是正则表达式?我对正则表达式很恐怖,所以如果这是最好的话就会很好。
或者,有没有更好的选择我没有考虑过?
答案 0 :(得分:-1)
它总是在同一个域中,还是与地址松散相似的东西? 如果它只是domain.com,你可以用你列出的几种可能性替换
如果它的形状像地址,你可以试试像
这样的正则表达式((http://)?(www\.)?([a-zA-Z0-9]+)\.([a-z]{1,2,3}))
并替换为
<a href="\1">
(通常正则表达式是指捕获组(括号内的任何内容),如$ 1 $ 2 $ 3但在visual studio中它是\ 1 \ 2 \ 3)
如果你在visual studio中使用GUI工具,要以编程方式进行,你必须访问正则表达式匹配的groups并找到第1组
但它总是取决于你要解析的文本是什么,因为这将匹配任何一个或多个字符的字符串,然后是一个点,然后是几个小写字母
更具体地说,您可以将([a-z] {1,2,3})改为(com | net | org),并带有可能的后缀
所以你会得到
((http://)?(www\.)?([a-zA-Z0-9]+)\.(com|net|org))