comp/INFO_MAP_ECE/101102.1.119
Эта строка является результатом работы процессора, но после номера всегда есть специальные/непечатаемые символы, и моя цель - получить номер, исключающий текст перед ним, и специальную/непечатаемую после него. Я пытаюсь использовать метод split, но не уверен, что использовать для специальных/непечатаемых символов. Может кто-нибудь предложить что-нибудь? Это было бы большой помощью. Благодарю.
Предполагая, что ваш вывод всегда выглядит примерно так, как вы показали, вы можете использовать регулярное выражение:
numPattern = r'/([\d.]+)'
output = 'comp/INFO_MAP_ECE/101102.1.119'
m = re.search(numPattern, output)
if m: #If a match was found
numString = m.group(1) #Extracts the first group surrounded by ()
#etc
Образец здесь ищет /, затем некоторые числа и периоды, затем что угодно и извлекает только числа и периоды. Это должно работать до тех пор, пока вы всегда получаете строку, соответствующую этому описанию.
НТН!
.
не должен быть экранирован в классе персонажа. Таким образом, вместо [\d\.]+'
Шаблон должен быть [\d.]+'
.
.*
Делает в конце шаблона.
Является ли число всегда одной длины? Если это так, вы можете просто нарезать строку.
'comp/INFO_MAP_ECE/101102.1.119'[18:30]