0

我正在尝试将 Haxe Markdown 库(http://code.google.com/p/mdown/)改编为跨平台工作的官方 haxelib。我遇到了一些奇怪的地方,有些东西适用于 flash 和 javascript,但不适用于 neko。

请参阅此示例代码:

var str = "<p>This is a blockquote</p>";
var out = ~/(^|\n)/g.replace(str, "$1  ");
trace(out);

正如预期的那样,在 Javascript 和 Flash 上,我得到了这个:

 "  <p>This is a blockquote</p>"

在 Neko 我得到这个:

"  <  p  >  T  h  i  s     i  s     a     b  l  o  c  k  q  u  o  t  e  <  /  p  >  "

我现在可以解决它(不使用正则表达式)-但是谁能告诉我这个中断是什么时候?

谢谢,杰森

ps这可能有助于回答这个问题:http ://haxe.org/doc/cross/regexp#implementation-details

4

1 回答 1

2

如果您使用该m标志将其转换为多行正则表达式,则可以省略换行部分。这可能会有所帮助。

文档的相关部分位于链接页面的开头:

m : 多行匹配,^ 和 $ 代表一行的开始和结束

至于您的问题发生的原因,似乎 Neko 的正则表达式库错误地将您的正则表达式简化为空,这将在每个字符之间匹配。你可以放一个 . 在正则表达式的末尾并将空格移动到替换字符串的前面,这可能会阻止该错误的发生,并且它应该与所有实现兼容。

于 2012-04-25T02:06:23.130 回答