2013-05-11 44 views
-1

我想刪除一個單詞的第二個條目,例如,如果我要在文本中找到重複的條目:如何刪除一個字

Alex Alex 

條目應刪除一個。

+0

這是串了一系列空格隔開的單詞嗎?標點符號是一個因素嗎?如果它們在兩次(即「Alex Jon Alex」)中或者只是在連續時才被刪除? – 2013-05-11 19:18:22

+0

是的,它也應該刪除任何重複的文本,例如: 亞歷克斯要去買一些牛奶和亞歷克斯有一隻貓... bla bla – user2143407 2013-05-11 19:29:23

回答

2

使用正則表達式如下

(\b\S+\b)(?=.*\1) 

,代之以$1

它使用back reference功能或正則表達式。

+0

我必須使用Regex.Replace方法嗎? – user2143407 2013-05-11 19:27:02

+0

是的。注意有一個錯誤不是\ 1但是$ 1 – 2013-05-11 19:29:10

+0

似乎我得到一個錯誤 if(Regex.Replace(cuvant,「^(\ b \\ S + \ b)(?=。* $ 1)$」 )) returnVer =「Duplicate deleted」; – user2143407 2013-05-11 19:36:01

2

我不會這樣做與正則表達式。

我會做這種方式:

private string RemoveDuplicateWord(string input) 
    { 
     string[] words = input.Split(' '); 
     var listOfWords = new List<string>(); 

     foreach (var word in words) 
     { 
      if (!listOfWords.Contains(word)) 
       listOfWords.Add(word); 
     } 

     var arrayString = listOfWords.ToArray(); 

     return string.Join(" ", arrayString); 
    }