検索

ホームページ  >  に質問  >  本文

「pip install」コマンドを解析して、インストールされているパッケージのテキストの範囲を取得します

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

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

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

リーリー

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

リーリー

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

P粉431220279P粉431220279442日前566

全員に返信(2)返信します

  • P粉773659687

    P粉7736596872023-09-08 15:53:55

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

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

    リーリー

    返事
    0
  • P粉194541072

    P粉1945410722023-09-08 10:50:01

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

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

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

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

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


    パラメータについて

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

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

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

    リーリー

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

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

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

    関数の最後の数行では、

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


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

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

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

    返事
    0
  • キャンセル返事