私はTreetopでこれをどうすればできますか?Treetop/PEGで貪欲でないマッチング?
/.+?;/
唯一の方法が何をしているように思える:一種の醜いです
[^;]+ ';'
..他の方法? .+?
は動作していません。
私はTreetopでこれをどうすればできますか?Treetop/PEGで貪欲でないマッチング?
/.+?;/
唯一の方法が何をしているように思える:一種の醜いです
[^;]+ ';'
..他の方法? .+?
は動作していません。
私はTreetopを知らないが、/[^;]+;/
は動作するのだろうか?クイック検索から
+
こと(他の正規表現のフレーバーに
++
によって表される)独占的量は実際にあります。
この場合、ネゲートされたクラス以外の正規表現ベースのオプションがあるかどうかはわかりません。
'/ [^;] +; /'は、私の質問にあるように '[^;] + ';''と書かれています。しかし、私はより良い方法があることを望んでいた。 – cloudhead
私はPEGが欲張りであることを知りました。周りには方法がありません。
S <- P1* P2
(貪欲:!(';' .)
PEGは、貪欲、デフォルトでは盲目であることは、彼らができるよう、彼らは同じくらいの入力を食べて、彼らはその後何が来るのか考えていないことのように先読みは、しかし、この動作を模倣するために使用することができます注文した選択肢(と先読みを使用しない)を利用しているが、固定かなり簡単にすることができ、ブラインド)
:
S <- P1 S/P2
(貪欲、非盲検)
S <- P2/P1 S
(怠け者、ノンブラインド)
'parslet'には 'rule(:line){(str("; "))がありますか? >> any).repeat(1)>> str( ";")} '私はあなたの2番目のオプションと同じです。 –