사용자가 입력 한 텍스트에서 정보를 추출하고 싶습니다. 다음을 입력한다고 가정 해 보겠습니다.인용문 사이에서 문자열 추출
SetVariables "a" "b" "c"
첫 번째 인용구 집합간에 정보를 추출하는 방법은 무엇입니까? 그럼 두 번째? 그럼 셋째?
사용자가 입력 한 텍스트에서 정보를 추출하고 싶습니다. 다음을 입력한다고 가정 해 보겠습니다.인용문 사이에서 문자열 추출
SetVariables "a" "b" "c"
첫 번째 인용구 집합간에 정보를 추출하는 방법은 무엇입니까? 그럼 두 번째? 그럼 셋째?
>>> import re
>>> re.findall('"([^"]*)"', 'SetVariables "a" "b" "c" ')
['a', 'b', 'c']
Regular expressions이에 좋은 :
import re
quoted = re.compile('"[^"]*"')
for value in quoted.findall(userInputtedText):
print value
당신은 그것에 사항 String.split()를 할 수 있습니다. 문자열의 형식이 인용 부호 (예 : 짝수 개의 인용 부호)로 올바르게 지정되어 있으면 목록의 모든 홀수 값에 큰 따옴표로 묶인 요소가 포함됩니다.
>>> s = 'SetVariables "a" "b" "c"';
>>> l = s.split('"')[1::2]; # the [1::2] is a slicing which extracts odd values
>>> print l;
['a', 'b', 'c']
>>> print l[2]; # to show you how to extract individual items from output
c
이것은 정규 표현식보다 더 빠른 접근법입니다. timeit 모듈을 사용하면이 코드의 속도가 약 4 배 빨라집니다.
% python timeit.py -s 'import re' 're.findall("\"([^\"]*)\"", "SetVariables \"a\" \"b\" \"c\" ")'
1000000 loops, best of 3: 2.37 usec per loop
% python timeit.py '"SetVariables \"a\" \"b\" \"c\"".split("\"")[1::2];'
1000000 loops, best of 3: 0.569 usec per loop
줄 끝에 세미콜론이 필요합니까? – User
@jspcal 작은 따옴표에도 사용할 수 있습니까? –