問題タブ [pyparsing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
9154 参照

python - pyparsing を使用して、複数のオープナー/クローザー型を持つネストされた式を解析するにはどうすればよいですか?

pyparsing を使用して、フォームの式を解析し、フォームexpr = '(gimme [some {nested [lists]}])'の python リストを取得したいと思います: [[['gimme', ['some', ['nested', ['lists']]]]]]。現在、私の文法は次のようになっています。

nestedParens = nestedExpr('(', ')')
nestedBrackets = nestedExpr('[', ']')
nestedCurlies = nestedExpr('{', '}')
囲まれた = nestedParens | ネストされたブラケット | ネストされたカーリー

現在、 enclosed.searchString(expr)次の形式のリストを返します[[['gimme', ['some', '{nested', '[lists]}']]]]。角括弧または中括弧を認識していないため、これは私が望むものではありませんが、その理由はわかりません。

0 投票する
1 に答える
904 参照

python - 演算子の解析の問題

pyparsingで文法をしましたが、問題があります。文法は(演算子の優先順位、括弧などを使用して)検索クエリを解析しようとします。スペースがand演算子のように機能する必要があります。

たとえば、これは正常に機能します。

しかし、これは失敗します:

そして、2番目のクエリを最初のクエリと同じように機能させたいと思います。

私の実際の文法は次のとおりです。

0 投票する
1 に答える
783 参照

python - pyparsing:特定のテキストを含む文字列を抽出する

私はpyparsingを学ぼうとしています。それは有望で、テキスト処理に使うのが楽しいものに聞こえます。とにかく、ここに私の質問があります:

コース名のリストがあります。例えば、

上記のような微積分に関係するコースをリストから抽出したいと思います。これらは、完全な単語CALCULUSまたは略語CALCを持つコースのいずれかです。まず、これらの単語が大文字でのみ表示されると仮定します(上記の例では小文字の単語があります。今のところそれを無視しましょう)。

私は次のコードを書きました:

私の最初の質問は、pyparsingを使用してこれを行うためのより良い方法があるかどうかです。

今、上記は逃しCalculus IIます。私は次のように定義することでそれを捕まえることができることを知ってcalcいます:

しかし、これは見逃しcAlcます。CALCのすべての小文字と大文字が一致するように文法を指定する方法はありますか?

ご協力ありがとうございました。

0 投票する
1 に答える
611 参照

pyparsing - pyparsing-単純な行を解析します


この行を完全に解析する方法に頭を悩ませています。「(4801)」の部分で問題が発生しています。他のすべての要素は正常に取得されています。

これは私が今まで持っているものです

編集: ポール、あなたが忍耐力を持っているなら、私はどのようにフィルタリングしますか

Efficiency_bnf.searchString(unparsed_log_data)とreport_and_effic.searchString(unparsed_log_data)はどちらも期待どおりにデータを返しますが、試してみると

report_and_effic = report_bnf + partial_report_ignore + Efficiency_bnf

report_and_effic.searchString(unparsed_log_data)は([]、{})を返します

EDIT2: コードを読み取る必要があります
。partial_report_ignore= Suppress(SkipTo( "Efficiency"、include = True))

0 投票する
2 に答える
1037 参照

python - pyparsing.ParseResultsをhtml文字列に変換し直します

私はpyparsingを始めたばかりです。
クラスpyparsing.ParseResultsのインスタンスをhtml文字列に戻すにはどうすればよいですか。

元。

したがって、この関数fooが必要です。
助言がありますか ?

0 投票する
1 に答える
1276 参照

python - TCLのようなテキストの解析

次のような構成テキストがあります。

値はプレーン文字列または引用符で囲まれた文字列です。キーは英数字の文字列です。私はそれを前もって知っていてkey2key3.subkey1.key4セットを保持するので、それらのパスを別の方法で扱うことができます。BLOBKEY同様に、「エスケープされた」構成セクションが含まれることを私は知っています。

目標は、次のような辞書に変換することです。

以下のこのコードは、ネストされたリストの束に分解するのに非常に優れています。

pyparsingを使用してPythonで、必要な結果を得る最良の方法は何ですか?

0 投票する
2 に答える
439 参照

python - pyparsing の結果をノードのリンク リストに関連付けるパターン

pyparsingこのテキストを構文ツリーに解析するルールを定義しました...

テキストコマンド:

構文ツリー:

上記の構文ツリーのネストされたすべてのキーと値のペアをオブジェクトのリンクリストに関連付けようとしています...階層は次のようになります(各単語はnamedtuple...階層内の子は両親の子供のリスト):

これらすべての目標は、ネットワーク機器に対するテストの流れを促進し、結果を記録するための汎用テスト データ取得プラットフォームを構築することです。データがこの形式になると、同じデータ構造を使用してテスト レポートが作成されます。以下のコメントの質問に答えるために、リンクされたリストを選択しました。これは、レポートを作成するときに情報を順番にデキューする最も簡単な方法と思われるためです。ただし、テストを完了する前に番号を割り当てIterationたり、Observationシーケンス番号を付けたりすることは避けたいと思います...テストの実施中に問題が見つかり、さらに観測を挿入する場合に備えて。私の理論では、リスト内の各要素の位置は十分ですが、それが問題の一部である場合は喜んで変更します。

問題は、作成後にリンク リスト内のオブジェクトに Key-Value を割り当てようとして迷ってしまうことです。たとえばObservation namedtuple、最初の に を挿入した後、上記の例Iterationの の更新を確実に処理するのに問題があります。assign Observation results_bool = True

この状況を処理するための一般化された設計パターンはありますか? 私はこれをしばらくグーグルで検索しましたが、テキストの解析 (私ができること) とデータ階層の管理 (主な問題) の間のリンクを作成できないようです。ハイパーリンクや小さなデモ コードは問題ありません。適切な軌道に乗るためのポインタが必要なだけです。

0 投票する
1 に答える
1270 参照

python - pyparsingでリテラル間のスペースを禁止するにはどうすればよいですか?

文法は拒否する必要がfrom : maryあり、受け入れる必要がfrom:maryあります。つまり、インターリーブスペースはありません。pyparsingでこれを強制するにはどうすればよいですか?ありがとう

0 投票する
1 に答える
251 参照

python - この手法は、pyparsing で ParseResults を構築するために受け入れられますか?

結果の解析ツリー ( pyparsing でParseActions知られている) を構築しようとすると、コードが少しぎこちなくなる気がします。ParseResults

私が今行っていることは、Group要素によって返される一致したトークンのグループを格納するグローバル変数を持つことです。toks最後に、結果を辞書に挿入します。これでよろしいですか ?

私の大ざっぱな文法:

などは任意の順序でインターリーブできることExprAに注意してください。ExprBしかし、ParseResults で 1 つのタイプのすべての式を 1 つの辞書エントリにグループ化したいと考えています。私の技術についてどう思いますか?マルチスレッドが問題になるため、グローバル変数を使用するのは好きではありません。他に選択肢はありますか?

0 投票する
1 に答える
412 参照

python - 私のユースケースでは、なぜpyparsingの順序付けされた選択が失敗するのですか?

scoobyはすでに文字ストリームで消費されているため、パーサーはバックトラックできないため、ParseExceptionがスローされますか?このための詳細な実装の説明を探しています。

現時点では、これはバグだと考えています。これは、パーサーが本番ルールのすべての選択肢を検索していないために、パーサーがマッチングを短絡する理由です。

更新

演算子と完全MatchFirstに同等ではないようです。|なんで ?