2013-10-02 5 views
-2

У меня есть следующие переменные. Есть ли способ, чтобы выбрать «Аль # экс» и назначить его на новую переменнуюРазбор строки в Python 3

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

Результат должен быть таким.

print(finalString) 
>"Al#ex" 

Заранее спасибо.

+0

'finalString = строка [1: 5]'? 'Л = Len (строка); 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'? Или дополнительный 'x' * после *' Al # ex' во входной строке? –

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

Выходной

Al#ex 
Смежные вопросы