(수정)특정 위치의 문자열만 추출하는 방법이 있나요?
조회수 4240회
24332 34 124\n 25543 341 456\n 45654 9 123 \n
위와 같은 텍스트에서
124\n 456\n 123\n
만 추출하는 방법이 있나요? 고정길이로 구분되어 작성된 텍스트에서 가장 오른쪽에 위치한 텍스트들만 추출하고 싶습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
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
-
댓글 입력