Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何从代码中删除缩进? 让我们考虑这个代码示例…不要看代码,而是看缩进 protected function _hashPassword( $password, $salt, $nuts = '' ) { if ( $nuts === '' ) { $nuts = Kohana::config( 'a11n' )->nuts; } $password = sha1( $password . $salt . $nuts ); return $password; }_Regex_Replace_Indentation - Fatal编程技术网

Regex 如何从代码中删除缩进? 让我们考虑这个代码示例…不要看代码,而是看缩进 protected function _hashPassword( $password, $salt, $nuts = '' ) { if ( $nuts === '' ) { $nuts = Kohana::config( 'a11n' )->nuts; } $password = sha1( $password . $salt . $nuts ); return $password; }

Regex 如何从代码中删除缩进? 让我们考虑这个代码示例…不要看代码,而是看缩进 protected function _hashPassword( $password, $salt, $nuts = '' ) { if ( $nuts === '' ) { $nuts = Kohana::config( 'a11n' )->nuts; } $password = sha1( $password . $salt . $nuts ); return $password; },regex,replace,indentation,Regex,Replace,Indentation,它取自更大的源代码。如您所见,它由两个制表符缩进。我想在不使用打字的情况下从中删除缩进。不知怎么的 如果我在编辑器中使用内置的“替换”功能并删除这两个选项卡,如 我得到这样的东西(不是所有情况下,但几乎) 这是因为在一行上有两个以上的选项卡,它会替换所有4个选项卡 我正在寻找功能强大到可以很好地删除缩进的正则表达式也许还有其他解决方案?只是不要建议写没有缩进的代码 您当然想简单地替换^\t\t,或者使用您的编辑器具有的任何字符作为线锚的开头,如果它不是^(我不知道您的特定编辑器的功能是什么,只

它取自更大的源代码。如您所见,它由两个制表符缩进。我想在不使用打字的情况下从中删除缩进。不知怎么的

如果我在编辑器中使用内置的“替换”功能并删除这两个选项卡,如

我得到这样的东西(不是所有情况下,但几乎)

这是因为在一行上有两个以上的选项卡,它会替换所有4个选项卡


我正在寻找功能强大到可以很好地删除缩进的正则表达式也许还有其他解决方案?只是不要建议写没有缩进的代码

您当然想简单地替换
^\t\t
,或者使用您的编辑器具有的任何字符作为线锚的开头,如果它不是
^
(我不知道您的特定编辑器的功能是什么,只是(非常好地)理解了大多数正则表达式引擎是如何驱动的)

这将仅替换每行开头的两个选项卡项

例如,如果我在Linux下从命令行执行此操作

sed 's/^\t\t//g' oldfile.c >newfile.c

将执行所需操作。

使用正则表达式,将
^\t\t
替换为空字符串。 不使用正则表达式,只需将
\n\t\t
替换为
\n

也可以考虑使用.< /P>< P>以下应用于记事本++:< /P> 1) 将搜索模式设置为:正则表达式

2) 查找内容:
^[\t]+

3) 替换为:

编辑:这将替换每行开头的一个或多个选项卡


替代方法:选择整个源代码,并多次点击
Shift选项卡。它将从每行的开头删除选项卡,就像上面的正则表达式一样。我希望这有帮助

在您最喜欢的现代编辑器中选择代码,然后点击Shift+Tab。

“替换为”当然是一个空字符串,但我想您已经知道了。:)错误,这将替换每行开头的所有选项卡。我想OP只想要前两个。我想我当时误解了OP。我以为他想要整个代码没有任何缩进。我将保留评论,直到澄清:)你当然是对的,谢谢。哇!这太棒了!你知道如何在代码前面添加4个空格(用于StackOverflow格式)吗?@daGrevis设置->首选项->语言菜单/选项卡设置->替换为空格->检查@daGrevis:将代码粘贴到StackOverflow编辑框将自动用4x空格替换制表符。@daGrevis,打开,您可以选择代码并点击菜单中的按钮。
sed 's/^\t\t//g' oldfile.c >newfile.c