У меня, казалось бы, простая проблема, которую я не могу решить. Учитывая строку, содержащую DOI, мне нужно удалить последний символ, если это знак пунктуации, пока последний символ не является буквой или цифрой.
Например, если строка была:
sampleDoi = "10.1097/JHM-D-18-00044.',"
Я хочу следующий вывод:
"10.1097/JHM-D-18-00044"
т. удалить .',
Я написал следующий скрипт для этого:
invalidChars = set(string.punctuation.replace("_", ""))
a = "10.1097/JHM-D-18-00044.',"
i = -1
for each in reversed(a):
if any(char in invalidChars for char in each):
a = a[:i]
i = i - 1
else:
print (a)
break
Однако, это производит 10.1097/JHM-D-18-00
, но я хотел бы, чтобы это произвело 10.1097/JHM-D-18-00044
. Почему 44
удален с конца?