这是做什么的?

时间:2011-05-08 08:35:10

标签: ruby-on-rails ruby regex

gsub(/^/, "\t" * num)

什么角色被替换?

2 个答案:

答案 0 :(得分:7)

没有字符被替换,它只是在开头插入num标签,因此您可以说它替换了零宽度“行首”标记。无论是谁写的都会更好用这样的东西:

tabbed = "\t" * num + original

正则表达式实际上不是简单字符串连接的正确工具。

澄清:如果您希望您的字符串包含多行,请使用:

gsub(/^/, "\t" * num)

使用制表符为所有行添加前缀是合理的事情,并且比分割,前缀和重新连接更少噪音。如果你只想在字符串中处理一行,那么简单的字符串连接将是更好的选择。

答案 1 :(得分:5)

^表示正则表达式语法中的“行首”,因此这将在每行的开头插入num制表符。从技术上讲,你可以说它替换了每一行开头的空字符串。