У меня есть следующая строка, где мне нужно извлечь только первые цифры из нее.Как разбить следующую строку?
string = '50.2000\xc2\xb0 E'
Как извлечь 50.2000 из string
?
У меня есть следующая строка, где мне нужно извлечь только первые цифры из нее.Как разбить следующую строку?
string = '50.2000\xc2\xb0 E'
Как извлечь 50.2000 из string
?
Если число может следовать какой-либо символ, попробуйте использовать регулярное выражение:
>>> import re
>>> r = re.compile(r'(\d+\.\d+)')
>>> r.match('50.2000\xc2\xb0 E').group(1)
'50.2000'
mystring = '50.2000\xc2\xb0 E'
print mystring.split("\xc2", 1)[0]
Выход
50.2000
Можно ли разбить строку на первый \? –
@HHH См. Мой ответ. – aIKid
Спасибо за помощь людям. Не могли бы вы рассказать мне, почему он не разделил эту строку 'u'26.2833 \ xb0 N''? Он говорит, что 'UnicodeDecodeError: 'ascii' codec не может декодировать байт 0xb0 в позиции 0: порядковый номер не в диапазоне (128)' –
Если вы просто хотели, чтобы разделить первые цифры, просто нарежьте строку:
start = 10 #start at the 10th digit
print mystring[start:]
Демо:
>>> my_string = 'abcasdkljf23u109842398470ujw{}{\\][\\['
>>> start = 10
>>> print(my_string[start:])
23u109842398470ujw{}{\][\[
Вы можете , Разделить строку на первой \
:
>>> s = r'50.2000\xc2\xb0 E'
>>> s.split('\\', 1)
['50.2000', 'xc2\\xb0 E']
Вы могли бы решить эту проблему с помощью регулярных выражений:
In [1]: import re
In [2]: string = '50.2000\xc2\xb0 E'
In [3]: m = re.match('^([0-9]+\.?[0-9]*)', string)
In [4]: m.group(0)
Out[4]: '50.2000'
действительно классный ответ –