Regex 正则表达式匹配代码中过多的空格
我想查找下面显示的Regex 正则表达式匹配代码中过多的空格,regex,perl,whitespace,Regex,Perl,Whitespace,我想查找下面显示的$之间的所有空格,并将其替换为一个空格 注意:我手动添加了$,以向您显示我希望匹配的内容。它们实际上并不存在于代码中,因为如果它们存在,它就不会编译 CClient::CClient$ $(Callback& callback): SecurityInfo$ $(NULL), ConnectInfo$ $(NULL), Session$ $(NULL), Id$ $(NULL), MyCallb
$
之间的所有空格,并将其替换为一个空格
注意:我手动添加了$
,以向您显示我希望匹配的内容。它们实际上并不存在于代码中,因为如果它们存在,它就不会编译强>
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
s/(?)?
它工作正常,但检查行的开头并不像我预期的那样工作
提前谢谢。我猜您想要的是:
s/(?<![ \t])(?!^)[ \t]{2,}(?![ \t])/ /mg;
s/(?)?
接受这一点:
s/(?<![ \t])(?!^)[ \t]+(?![ \t])/ /mg;
s/(?制表符在我的模型示例中翻译得不好,但我想你明白了。很抱歉,混淆了。那些$只是为了演示。差不多,但在那些情况下,它不匹配单个制表符,我也需要。我想它只会用单个空格替换单个空格。是的,据我所知,这是可行的。