Преобразователь единицы измерения найден в строке Python - PullRequest
0 голосов
/ 18 апреля 2020

Привет всем
Я пришел сюда, потому что мне нужна ваша помощь :)
Мне нужно найти в строковых единицах измерения и преобразовать их.
В моем случае я искал граммы и миллиграммы.

Пример:
"текстовый текст ... используйте 0,0075 г" или
"текстовый текст ... используйте 0,0075 г" или
"текстовый текст ... используйте 0,0075g"

У меня есть регулярное выражение для поиска единиц измерения: re.findall(r"(\d*\.?(?:.|,)\d+)\s*(lbs?|g)" ,text)

Но я не уверен, как чтобы взять этот фрагмент совпадающего текста, проверьте, являются ли они граммами или миллиграммами
, а в случае граммов умножьте на 1000 и измените строку, чтобы получить:
"текстовый текст .... используйте 75 мг"

Буду очень признателен за вашу помощь и объяснения.

1 Ответ

1 голос
/ 18 апреля 2020

Вы можете использовать метод разбиения, чтобы выделить то, что вам интересно:

string = "random text text text use 0.0075g"
check = string.split("m")
print(check)
if check[len(check)-1] == "g":
    print("already in mg")
else:
    step = string.split(" ")
    step2 = step[len(step)-1].split("mg")
    newstring = " ".join(step)
    step3 = step2[0].split("g")
    step4 = float(step3[0])
    newstring = newstring.replace(step2[0], str(step4*10000)+"mg")
    print(newstring)

Я поместил много переменных "шага", чтобы вы могли легко понять.

ДВА ПРЕДУПРЕЖДЕНИЯ:

  • «использовать 0,75 г» не в порядке -> использовать точку в качестве комы «использовать 0,75 г»

  • «использовать 0,75 г» isn все в порядке -> не ставьте пробелы "использовать 0,75 г"

...