Python, строки, символы Юникода - PullRequest
1 голос
/ 07 сентября 2011

comp/INFO_MAP_ECE/101102.1.119

Эта строка выводит процессор, но после номера всегда есть специальные / непечатаемые символы, и моя цель - получить число, исключая текст перед ним и специальный / непечатный после него. Я пытаюсь использовать метод split, но не уверен, что использовать для специальных / непечатаемых символов. Может кто-нибудь предложить что-нибудь? Это было бы очень полезно. Благодарю.

Ответы [ 2 ]

3 голосов
/ 07 сентября 2011

Предполагая, что ваш вывод всегда выглядит примерно так, как вы показали, вы можете использовать регулярное выражение :

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

Шаблон здесь ищет /, затем некоторые числа и периоды,затем что-нибудь, и извлекает только цифры и периоды.Это должно работать до тех пор, пока вы всегда получаете строку, соответствующую этому описанию.

HTH!

1 голос
/ 07 сентября 2011

Номер всегда одинаковой длины? Если это так, вы можете просто нарезать строку.

'comp/INFO_MAP_ECE/101102.1.119'[18:30]
...