有人可以用英语解释下面的代码吗?

时间:2011-11-25 11:21:40

标签: ruby-on-rails ruby regex

我广泛理解正则表达式,但我希望有人可以帮助理解这一点。我用它来插入一个双新线,之前只有一个 - 它几乎可以工作,但并不完全。我从'github flavoured markdown'中偷走了它 - 它修改为更直观地支持新线条。

 cleaned.gsub!(/^[\w\<][^\n]*\n+/) do |x|
      x =~ /\n{2}/ ? x : (x.strip!; x << "  \n")
 end

1 个答案:

答案 0 :(得分:11)

/^ - 从字符串的开头:

[\w\<] - 匹配任何后一个角色或开放角括号。之后:

[^\n]* - 应该有任何非新的行字符,

\n+/ - 最后应该是一行或多行。

然后在每个匹配代码替换为:

如果匹配的代码包含两个新行,则保持不变。

否则在末尾剥去一个添加空格和新行。