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

python - タグの内容以外のテキストを削除する

逆は、次のようにpyparsingを使用して実現できます。

タグの内容を保持するにはどうすればよい"table"ですか?

更新0:

試しました:#テーブルのみを保持tableOpen、tableClose = makeHTMLTags( "table")tableBody = tableOpen + SkipTo(tableClose)+ tableClose f = replaceWith(tableBody)tableBody.setParseAction(f)data =(tableBody).transformString(data)データを印刷する

そして、私はこのようなものを手に入れます...

更新2:

Martelliに感謝します。私が必要なのは:

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

python - pyparsingの次は何ですか?

私は、大規模で純粋なPythonアプリケーションの一部としてpyparsing用に開発された巨大な文法を持っています。パフォーマンスの調整の限界に達し、収穫逓減によって他の場所を探し始めるようになりました。はい、私はほとんどのヒントとコツを知っていると思います。文法とほこりへの応用をプロファイリングしました。

次は何?

私は、同じ読みやすさ、使いやすさ(解析されている入力の後処理を開始するための解析アクションなど、pyparsingの多くの高度な機能を使用しています)、およびpython統合を10倍で提供するパーサーを見つけたいと思っています。パフォーマンス

文法が純粋なPythonであるという事実が大好きです。

私の基本ブロックはすべて正規表現なので、再利用するといいでしょう。

私はすべてを手に入れることができないことを知っているので、要求された10倍のパフォーマンスを得るために今日持っている機能のいくつかをあきらめたいと思っています。

ここからどこへ行くの?

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

python - pyparsingを使用してリストを「分解」する

解析されたリストをpyparsingに与えて、元の文字列を返すようにすることは可能ですか?

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

python - pyparsingを必要とするPythonスクリプトを実行するにはどうすればよいですか?

pyparsingと呼ばれるものを使用するPythonファイルを取得しましたが、それを実行すると、pyparsingが必要であるというエラーが表示されました。 :)ありがとう

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

python - 指定されたリテラルの任意の組み合わせに一致する pyparsing

例: リテラル "alpha"、"beta"、"gamma" があります。pyparsing で次の入力を解析するにはどうすればよいですか。


指定された入力は、"|" で区切られた、指定されたセットから 1 つ以上の非反復リテラルを使用して作成できます。pyparsing の設定に関するアドバイスをいただければ幸いです。

0 投票する
3 に答える
5646 参照

python - PyParsing による Snort ログの解析

pyparsing モジュールを使用した Snort ログの解析に問題があります。

問題は、Snort ログ (空白行で区切られた複数行のエントリがある) を分離し、行ごとに読み込んで文法が各行で機能することを期待するのではなく、pyparsing で各エントリをチャンク全体として解析することです (明らかに、そうではありません。)

各チャンクを一時的な文字列に変換して、各チャンク内の改行を削除しようとしましたが、正しく処理されません。私は完全に間違った方向に進んでいるかもしれませんが、そうは思いません (同様の形式は syslog タイプのログに対して完全に機能しますが、それらは 1 行のエントリであるため、基本的なファイル イテレータ/行処理に適しています)

これまでのログとコードのサンプルを次に示します。

そして更新されたコード:

ヘルプ、ポインタ、RTFM、You're Doing It Wrongs など、大歓迎です。

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

python - Python: 正規表現を BNF または pyparsing に置き換える

各行がゲーム ユニットを説明する、比較的単純なテキストを解析しています。解析手法についての知識がほとんどないため、次のアドホック ソリューションを使用しました。

正常に動作しますが、正規表現の力の限界に達したと感じています。具体的には、Traits の場合、値は、後で分割してリストに変換する必要がある文字列になります。たとえば、obj.Traits は、このコードでは「Motorized Armored」に設定されますが、後の機能は ('Motorized', 'Armored') に変更されました。

このコードを変換して、EBNF または pyparsing 文法などを使用することを考えています。私の目標は次のとおりです。

  • このコードをより簡潔にし、エラーを起こしにくくする
  • 値のリストを使用したケースの醜い扱いを回避します(最初に正規表現内で置換を行い、後で結果を後処理して文字列をリストに変換する必要があります)

何を使用し、コードをどのように書き直すかについて、あなたの提案は何ですか?

PS 混乱を避けるために、コードの一部をスキップしました。プロセスにエラーが発生した場合は、申し訳ありません-元のコードは機能します:)

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

python - pyparsingを使用して小数式を解析するにはどうすればよいですか?

タイヤを解析し始めたばかりで、これまでのところ気に入っていますが、小数の文字列を解析して数値データ型に変換するのに役立てることができませんでした。

たとえば、データベーステーブルの列の値に文字列が含まれている場合:

1 1/2

それをPythonに相当する数値に変換する方法が必要です。

1.5

分数の数値が整数であるか実数であるかを気にしないパーサーを作成したいと思います。たとえば、次のようにします。

1.0 1.0 / 2.0

...まだ翻訳する:

1.5

基本的に、パーサーは概念的に次のことを実行する必要があります。

「11/2」=1+ 0.5 = 1.5

次のサンプルコードは私たちを近づけるようです...

http://pyparsing.wikispaces.com/file/view/parsePythonValue.py

...しかし、前進するのに十分な距離ではありません。小数ハンドラーを作成するためのすべてのテストは、式(1)の最初の部分のみを返します。チップ?ヒント?タイムリーな知恵?:)

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

python - 2つの既知の行の間のテキストブロックを解析するpython

pyparsing を使用して、2 つの既知の行の間の行のブロックを取得しようとしています。例えば:

私のpythonコード:

-->しかし、それは動作しません。Python がハングするだけです。誰かがそれを行う方法を教えてもらえますか?

ありがとう、

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

python - pyparsing、forward、およびrecursion

pyparsingを使用してvcd(値変更ダンプ)ファイルを解析しています。基本的に、ファイルを読み込み、内部辞書に解析して、値を操作したいと思います。

構造の詳細に立ち入ることなく、ネストされたカテゴリを識別する際に問題が発生します。

vcdファイルには、ワイヤと、場合によってはより深い(ネストされた)スコープを含む「スコープ」があります。それらをレベルのように考えてください。

したがって、私のファイルには、次のものがあります。

したがって、「トップレベル」にはすべて(a-i)が含まれ、「ミッドレベル」には(a-b)が含まれ、「エクストラレベル」には(f-g)が含まれます。

このセクションを解析するための私のコード(スニペット)は次のとおりです。

さて、私が思ったことは、それが各スコープに到達すると、各「レベル」を追跡し、ネストされたスコープを含む構造になってしまうということです。ただし、エラーが発生します

'$upscope'を期待していると言っています。

したがって、再帰を正しく使用していないことがわかります。誰かが私を助けることができますか?さらに情報を提供する必要がある場合はお知らせください。

ありがとう!!!!