(수정)특정 위치의 문자열만 추출하는 방법이 있나요?

조회수 4240회

24332 34 124\n 25543 341 456\n 45654 9 123 \n

위와 같은 텍스트에서

124\n 456\n 123\n

만 추출하는 방법이 있나요? 고정길이로 구분되어 작성된 텍스트에서 가장 오른쪽에 위치한 텍스트들만 추출하고 싶습니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 파이선은 잘 몰라서 소스 레벨로 답변할 수 는 없지만, 위와 같은 조건이라면, 숫자 날리고 공백으로 자르면 되는거 아닌가요? 알 수 없는 사용자 2018.6.21 10:02
  • 질문의 조건이 정확하지 않은것 같아요. 위의 댓글처럼 숫자를 제외한 텍스트를 의미하시는건지, 올려주신 특정 패턴(a c\n 등)에 일치하는 텍스트를 원하시는건지요 정토드 2018.6.21 10:17
  • 영문, 숫자 상관없이 길이가 고정되어 있는 텍스트에서 특정 위치의 텍스트를 추출하고 싶습니다. 19282737 abcd 가나다라; 95726103 dkji neux; 등과 같이 한줄 한줄 정렬되어 있을때 가장 오른쪽 가나다라; neux; 만 추출하고 싶습니다. 알 수 없는 사용자 2018.6.21 11:32

1 답변

  • 요건에 맞게 수정했습니다. 먼저, \n으로 분리하고 분리된 문자열 배열을 순회하면서 원하는 word를 찾습니다. " + " 문자가 있을 경우와 없을 경우가 다른데, 있을 경우에는 " + " 앞 index부터 공백을 찾고 없을 경우에는 가장 마지막 -1 index부터 공백을 찾습니다. (이유는 샘플에 \n 앞에도 공백이 있는 경우가 있기 때문입니다.)

    message = "24332 34 124\n 25543   341   456\n 45654   9  123 \n 45654   9  12 + 3 \n 45654   9  1 + 2 + 3 \n"
    strArray = message.split("\n")
    
    for str in strArray:
            plusPos = str.find(" + ")
            if plusPos == -1:
                startPos = str[:-1].rfind(" ")
            else:
                startPos = str[:plusPos - len(str)].rfind(" ")
            print str[startPos + 1:]
    
    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 헉! 감사합니다!!그런데 추출하고자 하는 124,456,123 부분에 공백이 포함된 문자열이 있으면 어떻게 추출해야될까요? ㅠㅠ 예를들어 124가 아니라 가나 + 다라 처럼요! 알 수 없는 사용자 2018.6.21 15:10
    • 공백이 포함되어있으면 저 방법으로는 힘들 것 같습니다. 앞 문자열과 선택하려는 문자열을 구분하는 명확한 기준이 없으면 힘들 것 같아요. 앞 문자열과 선택하려는 문자열을 구분할 수 있는 명확인 기준이 뭔가요? 알 수 없는 사용자 2018.6.21 15:19
    • 선택하려는 문자열에는 앞 문자열들과 달리 특정한 패턴이 있습니다. 가 혹은 가 + 나 혹은 가 + 나 + 다... 처럼 +로 연결된 구조인데, 연결된 개수가 모두 다르고 규칙적이지 않아서 어떻게 이 패턴을 추정할지 모르겠습니다. 만약 위치로 문자열 추출하는 게 어렵다면, 이 문자열의 패턴을 활용해서 검색하고 추출해야될 것 같습니다만 혹시 이 방법도 알려주실 수 있으신가요? 도움 주셔서 정말 감사드립니다. 알 수 없는 사용자 2018.6.21 22:28
    • 선택하려는 문자열 앞은 무조건 공백이 두 번만 나오나요? 알 수 없는 사용자 2018.6.21 23:03
    • 답변 수정했습니다. 알 수 없는 사용자 2018.6.22 10:30
    • 감사합니다. 하지만 원하는 문장만 추출되지는 않네요 ㅠㅠ 알 수 없는 사용자 2018.6.23 14:47
    • 혹시 re 모듈로 패턴추출하려고 하는데, 알 수 없는 사용자 2018.6.23 14:48
    • 가나/다라 혹은 가나/다라 + 기니/디리 혹은 가나/다라 + 기니/디리 _ 그느/드르 .... 와 같은 패턴을 re 모듈에서 검색할 수 있는 형식(ex '.*/,* ) 으로 어떻게 표현해야할까요?? 알 수 없는 사용자 2018.6.23 14:49
    • 답변이 늦어 죄송합니다. 답변을 주실때마다 입력으로 들어오는 문자열의 형식이 자꾸 바뀌니 답변을 드릴 수가 없습니다. 입력으로 들어오는 정확한 문자열 패턴이 어떻게 되는 건가요? 알 수 없는 사용자 2018.6.25 22:55

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)