0

Haxe Markdown ライブラリ ( http://code.google.com/p/mdown/ ) を、プラットフォーム間で動作する公式の haxelibに適合させようとしています。フラッシュと 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 に答える