「pip install」コマンドを解析して、インストールされているパッケージのテキストの範囲を取得します
P粉431220279
P粉431220279 2023-09-07 18:54:45
0
2
451

私は、pip installコマンドを使用してインストールされた Python パッケージの名前と場所を抽出する必要があるプロジェクトに取り組んでいます。

Web ページには、複数行のテキストと bash コマンドを含むcode要素が含まれています。このテキストを解析して、テキスト内のパッケージとその場所を検索できる JS コードを作成したいと考えています。

たとえば、テキストが次の場合:

リーリー

これと同様の結果を取得したい:

リーリー

この機能をJavaScriptで実装するにはどうすればよいですか?

P粉431220279
P粉431220279

全員に返信 (2)
P粉773659687

この回答で説明したコードをご覧ください。

これは、正規表現に基づいた別の同様の解決策です:

リーリー
いいねを押す+0
    P粉194541072

    これはオプションの解決策です。正規表現の代わりにループを使用してみてください:

    アイデアは、テキストpip installを含む行を見つけることです。これらの行が、私たちが関心のある行です。次に、コマンドを単語に分割し、コマンドのパッケージ部分に到達するまでループします。

    まず、パッケージの正規表現を定義します。パッケージはpip install 'stevedore>=1.3.0,:

    のようなものであることに注意してください。 リーリー

    NOTE名前付きグループpackage_partは「バージョン付きパッケージ」文字列の識別に使用され、package_nameは抽出に使用されます。パッケージ名。


    パラメータについて

    コマンドライン引数には、optionsflagsの 2 種類があります。

    options の問題は、次の単語がパッケージ名ではなく、options値であることを理解する必要があることです。

    そこで、最初にpip installコマンドのすべてのオプションをリストしました:

    リーリー

    次に、引数を見つけたときに何をするかを決定するために後で使用する関数を作成しました。 リーリー

    この関数は、認識されたパラメータとコマンドの残りの部分を単語に分割して受け取ります。

    (ここで「インデックス カウンター」が表示されます。各発見の位置も見つける必要があるため、元のテキスト内の現在の位置を追跡する必要があります)。

    関数の最後の数行では、

    --option=something--option somethingの両方のケースを処理していることがわかります。


    パーサー
    ここで、メイン パーサーは生のテキストを行に分割し、次に単語に分割します。

    すべての操作では、テキスト内のどこにいるかを追跡するために

    グローバル インデックスを更新する必要があります。このインデックスは、間違った部分文字列に陥ることなくテキスト内を検索して見つけるのに役立ちます。を使用します。 IndexOf(str, counterIndex):リーリー

    いいねを押す+0
      最新のダウンロード
      詳細>
      ウェブエフェクト
      公式サイト
      サイト素材
      フロントエンドテンプレート
      私たちについて 免責事項 Sitemap
      PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!