>  Q&A  >  본문

'pip install' 명령을 구문 분석하여 설치된 패키지 텍스트의 범위를 가져옵니다.

저는 pip install 명령을 사용하여 설치된 Python 패키지의 이름과 위치를 추출해야 하는 프로젝트를 진행하고 있습니다.

웹 페이지에는 여러 줄의 텍스트와 bash 명령이 포함된 code 요소가 포함되어 있습니다. 이 텍스트를 구문 분석하고 텍스트에서 패키지와 해당 위치를 찾을 수 있는 JS 코드를 작성하고 싶습니다.

예를 들어 텍스트가 다음과 같은 경우:

으아악

다음과 같은 결과를 얻고 싶습니다.

으아악

JavaScript에서 이 기능을 어떻게 구현할 수 있나요?

P粉431220279P粉431220279408일 전531

모든 응답(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":

    으아악

    패키지 이름을 추출하기 위한 명명된 그룹화 , package_part 用于识别“带版本的包”字符串,而 package_name에 주목하세요.


    매개변수 정보

    명령줄 인수에는 optionsflags이라는 두 가지 유형이 있습니다.

    options의 문제는 다음 단어가 패키지 이름이 아니라 options 값이라는 점을 이해해야 한다는 것입니다.

    그래서 먼저 pip install 명령의 모든 옵션을 나열했습니다.

    으아악

    그런 다음 나중에 인수를 볼 때 무엇을 할지 결정하는 데 사용할 함수를 작성했습니다.

    으아악

    이 기능은 인식된 매개변수와 나머지 명령을 단어로 분할하여 수신합니다.

    (여기서 "인덱스 카운터"가 보이기 시작합니다. 각 발견의 위치도 찾아야 하므로 원본 텍스트의 현재 위치를 추적해야 합니다).

    함수 마지막 몇 줄을 보면 제가 --option=something--option something 두 가지 경우를 모두 처리한다는 것을 알 수 있습니다.


    파서

    이제 기본 파서는 원시 텍스트를 줄로 분할한 다음 단어로 분할합니다.

    모든 작업은 글로벌 인덱스를 업데이트하여 텍스트의 위치를 ​​추적해야 하며 이 인덱스는 indexOf(str, counterIndex):

    를 사용하여 잘못된 하위 문자열에 갇히지 않고 텍스트에서 검색하고 찾는 데 도움이 됩니다. 으아악

    회신하다
    0
  • 취소회신하다