Как умножить все числа в тексте

mig-z

Client
Регистрация
05.12.2014
Сообщения
303
Благодарностей
71
Баллы
28
Есть текст с числами и буквенными сокращениями. Нужно буквенные сокращения заменить на числа. Как посоветовал DAN из тг чата ЗП, для решения задачи надо найти сокращенные буквенные названия после цифр, заменить запятые на точки в числовых значениях перед ними и умножить там где М\млн\кк на 1000000, а там где лярд\ккк на 1000000000.

Подскажите пожалуйста, как это можно реализовать или хотя бы как перемножить несколько текстовых значений на цифры?

Пример текста который надо обработать:
2.3M 3м 3,5 млн 200кк 80 лямов 200m 360млн 410.000.000 420+кк 1.1ккк 405 млн 1B 1.24лярда 1.8ккк 400M 410,000,000
Текст, который должен получиться:
2300000 3000000 3500000 200000000 80000000 200000000 360000000 410000000 420000000 1100000000 405000000 1000000000 1240000000 1800000000 400000000 410000000
 

xASZx

Client
Регистрация
24.11.2017
Сообщения
70
Благодарностей
15
Баллы
8
С твоей строкой работает)
 

Вложения

  • 11,1 КБ Просмотры: 21
  • Спасибо
Реакции: mig-z

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 598
Баллы
113

xASZx

Client
Регистрация
24.11.2017
Сообщения
70
Благодарностей
15
Баллы
8
С такими большими числами не работал) убери 0.############################### из стринга и будет в степени)
 

Вложения

  • 11,1 КБ Просмотры: 21
  • Спасибо
Реакции: mig-z

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 021
Благодарностей
1 385
Баллы
113
Шаблон прикрепил.

input: 2.3M 3м 3,5 млн 200кк 80 лямов 200m 360млн 410.000.000 420+кк 1.1ккк 405 млн 1B 1.24лярда 1.8ккк 400M 410,000,000

output: 2300000 3000000 3500000 200000000 80000000 200000000 360000000 410000000 420000000 1100000000 405000000 1000000000 1240000000 1800000000 400000000 410000000

1692914002053.png
 

Вложения

Последнее редактирование:
  • Спасибо
Реакции: mig-z

mig-z

Client
Регистрация
05.12.2014
Сообщения
303
Благодарностей
71
Баллы
28
Супер! Работает, но только если встречается текст, который скрипт не знает, то выдает ошибку.
Например, это не работает:
Привет мир 2.3M я тестовое значение 3м 3,5 млн для 200кк 80 лямов тестирования кода 200m 360млн 410.000.000 420+кк 1.1ккк 405 млн 1B 1.24лярда 1.8ккк 400M 410,000,000 вот ))
Сможете подправить пожалуйста, чтобы заработало?
 

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 127
Благодарностей
484
Баллы
83
Супер! Работает, но только если встречается текст, который скрипт не знает, то выдает ошибку.
Например, это не работает:

Сможете подправить пожалуйста, чтобы заработало?
Ну так чтобы работало так, как надо, надо чуть-чуть усилий приложить, правда?
Открываем шаблон, жмём левой кнопочкой мышечки на кубик кода C#, видим там конструкцию Dictonary:
110837


Нажимаем на рубильник и включаем мозг. Слева аббревиатура, справа множитель. Добавляем ручками нужные аббревиатуры с нужным модулем. И, о чудо, заработает!
 

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 127
Благодарностей
484
Баллы
83
Зря наехал, ошибка не в обработчике аббревиатуры, в парсинге строки.
 

mig-z

Client
Регистрация
05.12.2014
Сообщения
303
Благодарностей
71
Баллы
28
Ну так чтобы работало так, как надо, надо чуть-чуть усилий приложить, правда?
Открываем шаблон, жмём левой кнопочкой мышечки на кубик кода C#, видим там конструкцию Dictonary:
Посмотреть вложение 110837

Нажимаем на рубильник и включаем мозг. Слева аббревиатура, справа множитель. Добавляем ручками нужные аббревиатуры с нужным модулем. И, о чудо, заработает!
Да это то понятно с добавлением аббревиатур. Я говорил о том, чтобы оставить исходный текст, а заменить в переменной только аббревиатуры на числа. Чтобы получилось: Привет мир 2300000 я тестовое значение 3000000....
 

mig-z

Client
Регистрация
05.12.2014
Сообщения
303
Благодарностей
71
Баллы
28
Ну так чтобы работало так, как надо, надо чуть-чуть усилий приложить, правда?
Открываем шаблон, жмём левой кнопочкой мышечки на кубик кода C#, видим там конструкцию Dictonary:
Посмотреть вложение 110837

Нажимаем на рубильник и включаем мозг. Слева аббревиатура, справа множитель. Добавляем ручками нужные аббревиатуры с нужным модулем. И, о чудо, заработает!
Да это то понятно с добавлением аббревиатур. Я говорил о том, чтобы оставить исходный текст, а заменить в переменной только аббревиатуры на числа. Чтобы получилось: Привет мир 2300000 я тестовое значение 3000000....
 

mig-z

Client
Регистрация
05.12.2014
Сообщения
303
Благодарностей
71
Баллы
28

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 127
Благодарностей
484
Баллы
83
Ну да, махнул не разобравшись, у всех такое случается когда на скорую руку отвечаешь.
Короче, посидел поломал голову. Проблема в том, что в тексте есть лишние слова. Пытался оставить только те значения, которые подходят под значения из словаря, но это не сработало с 410,000,000 . Нужно как-то обрабатывать, наверное, значения, и приводить их к 1 стандартизации.. В целом, должна быть либо запятая для отделения тысячных, либо точка. Тогда это немного поправит ситуацию.
 

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 127
Благодарностей
484
Баллы
83
Ну да, махнул не разобравшись, у всех такое случается когда на скорую руку отвечаешь.
Прошу прощения. Очень много людей встречается, которые хотят всё на халяву совсем. Данный случай к такому точно не относится, он просто довольно сложный.
 
  • Спасибо
Реакции: mig-z

xASZx

Client
Регистрация
24.11.2017
Сообщения
70
Благодарностей
15
Баллы
8
Лови) один с словарем второй без
 

Вложения

  • 10 КБ Просмотры: 24

mig-z

Client
Регистрация
05.12.2014
Сообщения
303
Благодарностей
71
Баллы
28

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)