Регулярное выражение для соответствия чрезмерным пробелам в коде - PullRequest
0 голосов
/ 04 августа 2011

Я хочу найти и заменить все пробелы, показанные ниже, между $ только одним пробелом.

ПРИМЕЧАНИЕ. Я добавил $ вручную, чтобы показать вамчто я искал, чтобы соответствовать.На самом деле их нет в коде - потому что, если бы они были, он не скомпилировался бы!

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

Это работаетХорошо, но проверка начала строки не работает, как я ожидал.

Заранее спасибо.

1 Ответ

1 голос
/ 04 августа 2011

Я предполагаю, что вы хотите что-то вроде:

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

Принято это:

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