Сопоставление строк / поиск python

Я пытаюсь очистить данные из Википедии. У меня есть поле данных, содержащее размеры, как показано ниже.

["112 x 76 yards (102.4m x 69.4m)", "104.5 x 70.3 m", "107m x 72m", 
 "109×73 yds / 100×67 m", "{{convert|105|x|68|m|yd|1}}", "100 metres by 70 metres"]

Извлечь размеры достаточно просто, но извлечь единицу измерения довольно сложно, учитывая, сколько существует вариаций записей. Как лучше всего подойти к этому?

Я начал с использования;

"(\d+\.?\d*)"

Что должно извлечь все размеры, тогда я собирался сохранить только первые 2 числовых совпадения, сохранить первое совпадение единицы ('м', 'метр', 'метры', 'y', 'ярд', 'ярды ',' yd ',' ft '.....), а потом я смогу преобразовать все в метры.

Я просто не уверен, как бы я сохранил первый матч юнита.

Вы можете предоставить массив строк единиц измерения, которые вы хотите сопоставить и сопоставить с ним, а затем хешировать по индексу с размерами.

Lane Terry 10.06.2018 22:11

возможно, полезный или связанный Регулярное выражение, извлекающее числовое измерение

davedwards 10.06.2018 22:22
Связанный. Кроме того, если синтаксический анализ неоднозначен, вы можете использовать предполагаемый коэффициент конверсии, чтобы, надеюсь, исключить некоторые варианты.
hilberts_drinking_problem 10.06.2018 22:40
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
3
131
0

Другие вопросы по теме