用相同的替换多个字符串

时间:2015-08-24 23:42:06

标签: c# regex replace

我想要做的是用超链接替换文本字符串中的域。

所以domain.comwww.domain.comhttp://domain.comhttp://www.domain.com等替换为<a href="http://www.domain.com">

是否可以一次性更换所有这些,所以我不必做一堆替换声明?考虑先用一个独特的占位符替换每个占位符,然后用链接替换它们,这样我就不必担心重新替换字符串了。

或者也许是正则表达式?我对正则表达式很恐怖,所以如果这是最好的话就会很好。

或者,有没有更好的选择我没有考虑过?

1 个答案:

答案 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))
相关问题