使用c#在字符串中查找单词并替换之后的单词

时间:2014-10-28 09:15:16

标签: c# regex

嗨我有一个字符串:

string values = .....href="http://mynewsite.humbler.com.........href="http://mynewsite.anticipate.com..... and so on

我需要找到“mynewsite:keyword”,然后用“net”替换“com”。 字符串中有很多“com”,所以我不能简单地使用values.Replace方法。 此外,除了“mysite”之外还有很多其他网站,所以我无法在http ...

的基础上搜索

2 个答案:

答案 0 :(得分:0)

(?<=http:\/\/mynewsite\.)(\w+\.)com

试试这个。$1net。见。演示。

http://regex101.com/r/sU3fA2/26

答案 1 :(得分:0)

由于C#正则表达式支持lookbehinds中的量词,你可以试试下面的正则表达式。然后将匹配的.com替换为.net

@"(?<=(https?://)?(www\.)?(\S+?\.)?mynewsite(\.\S+?)?)\.com"

示例:

string str = @"....href=""http://mynewsite.humbler.com"" href=""www.foo.mynewsite.humbler.com"" foo bar href=""http://mynewsite.anticipate.com"" ";
string result = Regex.Replace(str, @"(?<=(https?://)?(www\.)?(\S+?\.)?mynewsite(\.\S+?)?)\.com", ".net");
Console.WriteLine(result);
Console.ReadLine();

<强>输出:

....href="http://mynewsite.humbler.net" href="www.foo.mynewsite.humbler.net" foo bar href="http://mynewsite.anticipate.net" 

IDEONE