2014-10-28 85 views
0

喜字符串後更換的話,我有一個字符串這樣的:查找單詞和使用C#

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

我需要找到。「mynewsite:關鍵字,然後更換‘COM’與‘網’ 有很多「com」出現在字符串中,所以我不能簡單地使用values.Replace方法。 此外,除了「mysite」之外還有很多其他網站的介紹,所以我無法在http的基礎上進行搜索......

+0

可以給我們一個廁所k在你的實際代碼? – Toto 2014-10-28 09:58:58

+0

在你的字符串中,你是否有類似'mynewsite.humbler.com'的字符串,你是否想用'net'追加它們 – vks 2014-10-28 10:38:44

+0

不,我只想用net替換com,而且你的代碼對我來說工作得很好。謝謝 – Aquarius24 2014-10-29 06:31:53

回答

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

試試這個。更換$1net。參見demo

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

+0

它不適用於'mynewsite.humbler-with-dash.com' – Toto 2014-10-28 10:00:16

+0

@ M42已向OP詢問相關問題 – vks 2014-10-28 10:38:59

0

由於C#正則表達式支持內部lookbehinds量詞,你可以試試下面的正則表達式。然後用.net

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

例更換匹配.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