2012-07-19 117 views
0

的重複我有一個這樣的字符串中的模式:正則表達式來清潔字符

T T,我想T

,它可以從[a-z]是任何字符。

我試過這個Regex Example但無法取代它。

編輯

像我有A Aa ar r,那麼它應該成爲Aar手段代替任何字符第一或第二,不管它是什麼。

+2

我不太明白這裏的要求。你必須由一個空格分隔的字符,你只需要第一個?還是第二?你使用哪種語言?你不需要這個正則表達式。 – 2012-07-19 12:56:24

+3

我認爲你需要再試一次 - 你的問題是非感性的 – BonyT 2012-07-19 12:56:37

+0

我在問題中發佈的鏈接中添加了模式..我使用'c#' – user1530755 2012-07-19 12:57:54

回答

1

您可以使用此反向引用。

/([a-z])\s*\1\s?/gi 

Example

一些更多的解釋:

(   begin matching group 1 
    [a-z] match any character from a to z 
)   end matching group 1 
\s*   match any amount of space characters 
\1   match the result of matching group 1 
      exactly as it was again 
      this allows for the repition 
\s?   match none or one space character 
      this will allow to remove multiple 
      spaces when replacing 
+0

你能告訴我什麼是'\ 1'的含義.. ?? – user1530755 2012-07-19 13:24:10

+0

這意味着正則表達式試圖再次複製第一個匹配組的完全相同的結果。 因此,說'([a-z])'匹配'A' - 那麼'\ 1'會嘗試完全匹配'A'等等。 如果您有多個匹配組,例如'([a-z])([0-9])',你可以使用'\ 1','\ 2'等反向引用這些組的結果。 – 2012-07-19 13:40:35

+0

我添加了一個顯示替換及其工作原理的示例。 – 2012-07-19 13:46:19