따옴표 안의 내용 이외의 다른 텍스트 (“”)와 문자열 뒤의 추출 / 삭제


3

다음과 같은 .txt 파일에 매우 큰 데이터 출력이 있습니다.

value1="1",value2="2",value3="test3",value4="4"
value1="1",value2="2",value3="anothertest3",value4="4"
value1="1",value2="2",value3="lasttest3",value4="4"

value3의 따옴표 내에서 값을 추출하여 결과를 다음과 같이 만듭니다.

test3
anothertest3
lasttest3

어떻게하면 될까요?

답변:


3
  1. 검색-> 바꾸기로 이동하십시오.
  2. 무엇찾기로 설정하십시오 ^value1=".*",value2=".*",value3="(.{10})",value4=".*"$.
  3. 바꾸기를 로 설정 하십시오\1 .
  4. 검색 모드 를로 설정하십시오 Regular expression.
  5. 모두 바꾸기를 누릅니다 .

답변 해주셔서 감사합니다. 모든 줄은 서로 다르며 모든 변수에 다른 정보가 포함되어 있다고 언급했습니다. 또한 길이가 같지 않거나 데이터 양이 같습니다. 또한 모든 줄에서 추출하려는 값에는 10자가 포함되어 있습니다. 특정 텍스트 다음에 10자를 표시 할 수 있습니까?
lleroy

value1, value2 및 value4에 다른 값을 허용하도록 내 답변을 편집했으며 이제 value3의 길이가 10 자라고 가정합니다.
Sam

예, 뒤에 나오는 10 개의 문자 만 표시 할 수 있습니다 value3=". 그렇게하려면을 사용하십시오 .*value3="(.{10}). 단점은 실제로 데이터를 구문 분석하지 않기 때문에 컨텍스트를 고려하지 않는다는 것입니다. 예를 들어, 행이 value1=",value3=",value121="",value3="anothertes"이면 식 ,value121=대신을 산출 할 수 anothertes있습니다.
Sam

2

검색 모드Regular Expression

검색 대상 ^.*,value3="([^"]*)".*$
:\1


1

샘의 해결책이 효과가 없었습니다.

제공 한 예제 데이터의 경우 다음 정규식이 작동했습니다. "이스케이프 처리 된 경우에도 값에을 포함 할 수 없다는 것을 제외하고는 길이에 대한 가정이 없습니다 (데이터 소스에 따라 언급 할 가치가 있음).

이것은 또한 앞에 value1또는 value2앞에 있다고 가정하지 않습니다 . 그것들은 선택적으로 생략 될 수 있거나, 선택적으로 또는 추가로 정렬되지 않은 값들이있을 수 있습니다.

  1. 검색-> 바꾸기 (또는 Ctrl+ h)
  2. 검색 모드를 정규식으로 설정
  3. 찾을 내용 필드에 다음을 입력하십시오.

    ^.*value3="([^"]*)".*$
    
  4. 세트 로 교체$1

  5. 전부 교체
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.