問題タブ [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 投票する
4 に答える
1819 参照

python - pyparsing で次のタグを見つけます

HTMLを解析するためにpyparsingを使用しています。私はすべてのタグを取得していますembedが、場合によっては、タグがすぐ後に続く場合もあります。a

例:

結果オブジェクトで文字オフセットを見つけることができませんでした。それ以外の場合は、元の入力文字列のスライスを取得して、そこから作業することができます。

編集:

私が BeautifulSoup を使わない理由を誰かが尋ねました。これは良い質問です。コード サンプルを使用して、なぜそれを使用しないことにしたかをお見せしましょう。

これを試してみると、 20 ~ 30% の確率で BeautifulSoup が解析エラーで失敗します。これらはまれなエッジ ケースではありません。pyparsing は遅くて面倒ですが、何を投げても爆発しませんでした。BeautifulSoup のより良い使用方法について教えていただければ、それを知りたいと思います。

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

python - Python: Pyparser を使用したテスト データの無効な構文

pyparser を使用して、S-Expression 言語用の非常に単純なパーサーを作成しようとしています。私は非常に小さな文法を書きました。これが私のコードです:

このコードの例を見ると、すべて問題ないように見えますが、実行すると、この行の構文エラーが発生します

わかりません。どんな助けにも感謝します

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

python - pyparsing でこれの文法を書く方法: 一連の単語に一致するが、特定のパターンを含まない

私はPythonとpyparsingが初めてです。私は以下を達成する必要があります。

私のテキストのサンプル行は次のようなものです:

商品説明、期間を抽出する必要があります

これを行う方法?

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

python - Pyparse 文法のデバッグ

私は C-- (実際の C-- 言語ではありません) と呼ばれる架空のプログラミング言語用のパーサーを構築しています。私は、言語の文法を Pyparsing が受け入れられるものに翻訳する必要がある段階に達しました。残念ながら、入力文字列を解析しようとすると (これは正しく、Pyparsing でエラーが発生することはありません)、正しく解析されません。これは私の文法の誤りによるのではないかと心配していますが、初めて Pyparsing を始めたので、どこが間違っているのかわかりません。

ここから翻訳している文法をアップロードして、人々が読んでもらうようにしました.

編集:ポールからのアドバイスで更新されました。

これは私が現在持っている文法です (Syntax 定義の上部の 2 行は、私が知っている私にはひどく悪いです):

文法を翻訳する際に間違いを犯したかどうか、および与えられた文法に準拠しながら単純化するために何ができるかを知りたい.

編集 2:新しいエラーを含めるように更新されました。

解析している入力文字列は次のとおりです。

これは、ターミナルからプログラムを実行したときに表示されるエラー メッセージです。

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

pyparsing - scanString の終了位置: なぜ end_index+1 なのですか?

パイソン/パイパーシング

scanString メソッドを使用すると、一致したトークンの開始位置と終了位置がテキストで示されます。

例えば

私は以下を取得します:

でも、猫の終了位置は「2」のはずですよね?次の場所が終了場所として報告されるのはなぜですか?

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

python - pyparsingを使用して関数をどのように整理する必要がありますか?

私はpythonとpyparsingでファイルを解析しています(これはMatlabのPSATのレポートファイルですが、それは重要ではありません)。これが私がこれまでに持っているものです。混乱していると思いますので、改善方法についてアドバイスをお願いします。具体的には、文法定義をpyparsingでどのように整理する必要がありますか?

すべての文法定義を1つの関数に含める必要がありますか?もしそうなら、それは一つの巨大な機能になるでしょう。そうでない場合は、どうすれば分割できますか。現時点では、ファイルのセクションで分割しています。1つの場所から一度だけ呼び出される関数をたくさん作成する価値はありますか。どちらも私には本当に正しいとは感じません。

すべての入力コードと出力コードを他のクラス関数とは別のファイルに配置する必要がありますか?それはクラスの目的をより明確にするでしょう。

また、ファイルを解析し、健全性チェックを実行してデータをクラスに格納する簡単な方法があるかどうかを知りたいと思います。私はこれをするのに多くの時間を費やしているようです。

(私はそれで十分だという答えを受け入れるか、人々が同意する場合はpyparsingではなくXを使用します)

0 投票する
4 に答える
3393 参照

python - Pyparsing でのキーワード マッチング: 貪欲でないトークンの丸呑み

パイソンニスタ:

Pyparsing を使用して次の文字列を解析するとします。

was はABC_123識別子です。SPEED_Xはパラメータで、123は値です。Pyparsing を使用して次の BNF を考えました。

途中からアンダースコアを削除すると(そしてEntryそれに応じて定義を調整すると)、正しく解析されます。

_このパーサーを少し怠惰にして、キーワードに一致するまで待つにはどうすればよいですか (文字列全体を識別子として丸呑みし、存在しない を待つのではなく.

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

[注: これは私の質問を完全に書き直したものです。私は本当の問題が何であるかを理解していませんでした]

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

python - pyparsing による部分評価

OpenDocument 数式構文を使用する数式を取得し、変数を評価せずに Python が理解できる構文に解析し、変数の値を変更して数式を何度も評価できるようにする必要があります。式はユーザー入力になる可能性があるため、pyparse を使用すると、式の構文を効果的に処理し、ユーザー入力をきれいにすることができます。利用可能なpyparsingの良い例はたくさんありますが、数学的なものはすべて、現在のスコープ内のすべてをすぐに評価することを前提としているようです.

コンテキストとして、私は産業経済 (ライフ サイクル アセスメント、または LCA) のモデルを使用しています。これらの式は、プロセス間の物質またはエネルギー交換の量を表しています。変数の量は、地理的な場所など、いくつかのパラメーターの関数にすることができます。式の連鎖と変数参照は有向非巡回グラフに格納されるため、式は常に簡単に評価できます。式はデータベースに文字列として保存されます。私の質問は次のとおりです。

  1. 解析された評価をデータベースに保存できるように式を解析することは可能ですか (評価される文字列などとして)?
  2. このアプローチに代わるものはありますか? 理想的な解決策は、一度解析/書き込みを行い、何度も読み取ることです。たとえば、数式を部分的に解析してから ast モジュールを使用しますが、これがデータベース ストレージでどのように機能するかはわかりません。
  3. これに似たプロジェクトまたはライブラリの例で、私が調べることができるものはありますか? 私はプログラマーではなく、空き時間にオープンソースの LCA ソフトウェア モデルを作成しながら論文を完成させようとしている学生です。
  4. このアプローチは遅すぎますか?各実行には数万回の数式評価が含まれる可能性がある、実質的なモンテカルロ実行を実行できるようにしたいと考えています (これは大きなデータベースです)。
0 投票する
2 に答える
466 参照

python - pyparsing を使用して、特殊文字で囲まれた文字列を解析およびハッシュする方法は?

私が見た pyparse の例の大半は、線形式を扱っていました。

a = 1 + 2

mediawiki の見出しを解析して、それらのセクションにハッシュしたいと思います。

例えば

Dict は次のようになります。

この「囲まれた」(==HEADLINE==) 解析の例を 1 つだけ見ることができれば、リンク/画像/ファイルなどに進むことができます。

0 投票する
5 に答える
1092 参照

python - Pyparsing - トークンの順序が予測できない場合

文字が任意の順序である可能性のあるテキストから、文字の種類と数を引き出すことができるようにしたいと考えています。私が取り組んでいる他の解析が行われていますが、このビットには困惑しています!

検索またはスキャンを使用して、可能な文字ごとに繰り返すことができますが、それを行うクリーンな方法はありますか?

これは私が得た限りです: