发布
社区首页 >问答首页 >到PHP。改变降价行为

到PHP。改变降价行为
EN

Stack Overflow用户
提问于 2012-05-31 13:57:41
回答 2查看 1.2K关注 0票数 0

我试图更改降价的默认行为,其中没有将单行中断转换为<br />

我发现github香精做到了这一点,但我很难将rube函数转换为类似的PHP。

Ruby代码如下所示:

代码语言:javascript
代码运行次数:0
复制
text.gsub!(/(\A|^$\n)(^\w[^\n]*\n)(^\w[^\n]*$)+/m) do |x|
   x.gsub(/^(.+)$/, "\\1  ")
end

但是,即使我在PHP中尝试这种简单的方法,我也没有发现任何区别。

代码语言:javascript
代码运行次数:0
复制
$text = preg_replace("/^(.+)$/", "\\1", $text);
$text = Markdown($text);

任何从Ruby到PHP转换的帮助都将受到高度赞赏。

PS。这里不需要讨论一般的行为,请参阅元问题降价渲染器是否应将单行中断视为br?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-31 17:29:59

在试图翻译Ruby代码时,您遗漏了两件事:

  1. 内部正则表达式位于Ruby 对其regex参数的每个匹配项调用一次。中,匹配传递为x。注意,外部regex是一个多行正则表达式(由最终的m表示)。
  2. 内部regex在匹配的换行符- 标签之前插入两个空格。您的regex只是用…替换它的匹配。它本身。
票数 0
EN

Stack Overflow用户

发布于 2012-06-02 05:10:45

经过进一步研究,我发现这个preg_replace是最有效的PHP,相当于ruby代码:

代码语言:javascript
代码运行次数:0
复制
preg_replace( "/^(\w[^\r\n]*)(?=\r?\n\w.*$)/m", "\\1  ", $text );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10835096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档