1

以下のParseKitを使用してシンボルトークンを追加しようとしています:

    [t.symbolState add:@"<p style=\"margin-left: 20px;\">"];

次のようなシンボルを追加するときに、ParseKit でワイルドカードを使用できるかどうか疑問に思っています。

    [t.symbolState add:@"<p style=\"margin-left: ##px;\">"];

解析手順中にトークンからワイルドカードを抽出できるようにしたいと考えています。

ParseKit でそのようなことは可能ですか?

4

1 に答える 1

1

ParseKitの開発者はこちら。

このように ParseKit を使用するのは得策ではないと思います。

ParseKit (およびその後継の PEGKit ) は、入力をトークン化し、トークンレベルで解析することに優れています。

あなたが提供した入力例にはいくつかの自然なトークンがありますが、ここでやろうとしているのは、それらの自然なトークンを無視し、それらを入力の塊に結合してから、パターンを使用してファンシーなサブトークン マッチングを行うことです。

パターンを使用して派手なサブトークン マッチングを行うための、人気のある強力なツールがあります。正規表現です。それらは、PEGKitよりもはるかに優れたソリューションになります。

ただし、ここで使用したいツールが正規表現であるとはまだ思いません(または、少なくとも唯一のツールではありません)。

XML入力を解析したいようです。そのために Regex や PEGKit を使用しないでください。XML パーサーを使用します。XML 入力の解析には常に XML パーサーを使用してください。

XML パーサー (SAX、StAX、DOM、XSLT、XQuery など) の上にレイヤー化された別の XML API を使用することを選択することもできますが、そのすべての下で、XML パーサー (そしてもちろん、すべての私がリストしたそれらのツールのうち、そうします)。

詳しくはこちらをご覧ください

次に、style探している属性文字列値を取得したら、Regex を使用して複雑なパターン マッチングを行います。

于 2014-10-01T16:43:39.370 に答える