2011-08-04 45 views
0

我想查找並替換$之間僅顯示一個空格的所有空格。正則表達式以匹配代碼中的過多空白

注意:我手動添加了$'s來向您展示我期望匹配的內容。它們實際上並不存在於代碼中 - 因爲如果它們是,它就不會編譯!

CClient::CClient$ $(Callback& callback): 
    SecurityInfo$ $(NULL), 
    ConnectInfo$ $(NULL), 
    Session$ $(NULL), 
    Id$   $(NULL), 
    MyCallback$ $(callback), 
    { 
    unsigned long$   $something = 0; 

    ConnectionId$   $= NumberOfClients++; 

    SecurityInfo$   $= new SecurityInfoClass$ $(); 
    ConnectInfo$    $= new ConnectInfoClass$ $(); 

這是我到目前爲止有:

s/(?<!^)(?:){2,}+|\t+(?=\S)/ /g 

它的工作原理確定,但開始的行檢查如我所料不工作。

在此先感謝。

+0

Tab鍵並沒有在我的實體模型,例如翻譯得好,但我認爲你的想法。 – kevlar1818

+0

對不起,我感到困惑。這些$只是爲了示範。 – kevlar1818

回答

1

我猜你想要的東西,如:

s/(?<![ \t])(?!^)[ \t]{2,}(?![ \t])/ /mg; 

接受這一點:

s/(?<![ \t])(?!^)[ \t]+(?![ \t])/ /mg; 
+0

差不多,但它不匹配那些我需要的情況下的單個標籤。 – kevlar1818

+1

用'+'替換'{2,}'? – Qtax

+1

我想它只會用一個空格替換一個空格。是的,據我所知,這是有效的。 – kevlar1818