2014-10-23 2 views
-1

그래서 거대한 문자열이 있는데, 여기서 일부 문자열이 많이 발생합니다. 그 사이에 텍스트가 필요합니다.다른 두 문자열 사이의 문자열 가져 오기 - Python 2.7.8

"I don't need this""This is what I need""I also don't need this." 

이것은 여러 번 발생하며 목록에 필요한 모든 문자열을 원합니다.

많은 특수 문자가 있지만 '사용할 수 없으므로'문자열에 사용할 수 있습니다.

나는 re 라이브러리를 사용해 보았지만 작동시키지 못했습니다.

내가 분할 너무

listy = hugestring.split('delim1') 
for element in listy: 
    element = element.split('delim2') 

을 시도하지만 두 번째 분할이 작동하지 않습니다.

+0

같은 정규 표현식을 사용할 수 있을까? 너 혼자서 무엇을하려고? – Kasramvd

+0

나는 첫 번째 반복 섹션에 대한 목록으로 문자열을 분할하고 두 번째 반복 섹션에 대한 목록의 모든 요소를 ​​분할 시도했다. 두 번째로 분할하지 않았으므로 각 요소가 필요한 문자열로 시작하는 거대한 목록이 생겼습니다. –

+0

원하는 문자열이 무엇입니까? 그리고 그 문자열의 어떤 부분은 당신이 원하지 않는 부분입니까? – Kasramvd

답변

0

이 당신에게 문자열에 포함 된 따옴표 내의 모든 문자열 목록 줄 것이다 :

import re 
in_str = "I don't need this\"This is what I need\"I also don't need this." 
out_str = re.findall(r'\"(.+?)\"', in_str) 
print out_str 

그래서 위의 예에서 print out_str[0] 당신이 거기에 오직 하나의 인용 거기로 필요한 당신을 줄 것이다.

+0

나는 어떻게 작동하지 않습니다. 내 문자열은 어디에서 입력해야합니까? 그것을 목록으로 출력합니까? –

+0

이것에 관해 당신은 무엇을 얻지 않느냐? 귀하의 문자열은 in_str 변수에 들어 있으며 reg ex를 통해 out_str (출력 변수)로 구문 분석됩니다. 문자열이 사용자 입력 인 경우 in_str (또는 re.findall() 함수가 호출하는 변수)에 사용자 입력 맵을 만드십시오. – Jakob

0

이 지금 그렇게 문제가 뭐죠, 당신이 의견에 말의 결과입니다 :

>>> n= s.split("I don't need this") 
['', "This is what I needI also don't need this."] 
>>> [i.split("I also don't need this") for i in n] 
[[''], ['This is what I need', '.']] 
1

당신은 그래서 무슨 문제가 지금이

>>> import re 
>>> your_str = "foo This is what I need bar foo This is what I need too bar" 
>>> left_delim = "foo " 
>>> right_delim = " bar" 
>>> pattern = "(?<={})[ \w]*?(?={})".format(left_delim,right_delim) 
>>> re.findall(pattern,your_str) 
['This is what I need', 'This is what I need too'] 
+0

이것은 하나의 문자열 만 찾고 많은 문자열이 필요합니다. –

+0

@Mathias Bøgebjerg, ok 업데이트 됨 – greole

관련 문제