2013-10-02 4 views
-2

다음 변수가 있습니다. "Al # ex"를 고르고 새 변수에 할당하는 방법이 있습니까Python 3에서 문자열 구문 분석

string="@Al#ex$" 
firstChar="A" 
lastChar="x" 

결과는 다음과 같아야합니다.

print(finalString) 
>"Al#ex" 

미리 감사드립니다.

+0

'finalString = 문자열 [1 : 5] '? 'l = len (string); finalString = string [1 : l-2]'? – twalberg

답변

0

str.find/str.rfind 사용 :

def pick1(string, first, last): 
    i = string.find(first) 
    if i < 0: return '' 
    j = string.find(last, i+1) 
    if j < 0: return '' 
    return string[i:j+1] 

def pick2(string, first, last): 
    i = string.find(first) 
    if i < 0: return '' 
    j = string.rfind(last, i+1) 
    if j < 0: return '' 
    return string[i:j+1] 

>>> pick1('@Al#ex$', 'A', 'x') 
'Al#ex' 
>>> pick2('@Al#ex$', 'A', 'x') 
'Al#ex' 
>>> 
>>> pick1('@xl#eA$', 'A', 'x') 
'' 
>>> pick2('@xl#eA$', 'A', 'x') 
'' 
>>> 
>>> pick1('[email protected]#ex$', 'A', 'x') 
'Al#ex' 
>>> pick2('[email protected]#ex$', 'A', 'x') 
'Al#ex' 
>>> 
>>> pick1('[email protected]#ex$x', 'A', 'x') 
'Al#ex' 
>>> pick2('[email protected]#ex$x', 'A', 'x') 
'Al#ex$x' 
+0

다른'x' * 앞에'A'가 있다면 어떨까요? 또는 입력 문자열에서 *'Al # ex' 뒤에 추가로'x' *를 추가합니까? –

1
mystring="@Al#ex$" 
firstChar="A" 
lastChar="x" 
finalString = mystring[mystring.index(firstChar):mystring.rindex(lastChar)+1] 
print (finalString) 

출력

Al#ex