Предварительная обработка чисел в Python

При предварительной обработке данных я получу одни и те же числовые характеристики в разных форматах. Например:

1x4 wire       1 x 4 wire
1-1/2x1 wire   1-1/2 x 1 wire
11/2x1 wire    1-1/2 x 1 wire 

Мне нужно стандартизировать разные форматы до одного формата.

Один из подходов, который мы подумали, - это удалить x, -, / и пробел и объединить все. то есть:

1x4 wire       1 x 4 wire         14 wire
1-1/2x1 wire   1-1/2 x 1 wire     1121 wire
11/2x1 wire    1-1/2 x 1 wire     1121 wire

Может ли кто-нибудь сказать, как реализовать описанный выше подход в Python?

Я попробовал следующий код, чтобы он соответствовал желаемому шаблону:

import re
regex = re.compile('(\d+.*?)\s?')

Я не понимаю, как использовать его вывод на re.sub.

1. Изучите Python. 2. Напишите код на Python.

melpomene 31.05.2018 14:03
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
62
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот два способа использования re.sub для удаления любого символа x, - или / с пробелами, расположенными непосредственно перед и сразу после него, если он предшествует числовому символу и следует за ним:

import re

myText = """
            1-1/2x1 wire cross box
            1x4 wire       1 x 4 wire         14 wire
            1-1/2x1 wire   1-1/2 x 1 wire     1121 wire
            11/2x1 wire    1-1/2 x 1 wire     1121 wire
        """

# First way
myNewText1 =  re.sub(r'(?<=([0-9])) *[x\-/] *(?=([0-9]))', '', myText)
print(myNewText1)

# Second way (by defining first a regex pattern)
myPattern = re.compile(r'(?<=([0-9])) *[x\-/] *(?=([0-9]))')
myNewText2 =  myPattern.sub('', myText)
print(myNewText2)

Оба печатают следующий результат:

1121 wire cross box
14 wire       14 wire         14 wire
1121 wire   1121 wire     1121 wire
1121 wire    1121 wire     1121 wire

Большое вам спасибо за ваш ответ. если мой ввод - f = "1-1/2x1 wire cross box", то я получу myNewText1 = re.sub(r' *[x\-/] *', '', f)print(myNewText1)1121 wire cross bo. мне нужно удалить только тогда, когда это с цифрами. `

Ranjana Girish 01.06.2018 07:57

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