Как удалить несколько пробелов между числами, используя один re.sub - PullRequest
0 голосов
/ 26 февраля 2019

Я хотел бы удалить пробелы между числами, используя один re.sub.С помощью следующих команд:

import re

print(re.sub('([0-9,.]) ([0-9,.])','\\1\\2',str("11 222")))

print(re.sub('([0-9,.]) ([0-9,.])','\\1\\2',str("11 222 33")))

print(re.sub('([0-9,.]) ([0-9,.])','\\1\\2',str("11 222 33 4")))

print(re.sub('([0-9,.]) ([0-9,.])','\\1\\2',str("11 222 33 4 55")))

print(re.sub('([0-9,.]) ([0-9,.])','\\1\\2',str("11 222 33 4 55 6")))

print(re.sub('([0-9,.]) ([0-9,.])','\\1\\2',str("11 222 33 4 55 6 77")))

Однако я могу удалить только пробелы, если существует более одного последовательного числа:

11222
1122233
11222334
11222334 55
11222334 556
11222334 556 77

Но как удалить также пробелы только с одним числом, такчто результат команды типа

print(re.sub('([0-9,.]) ([0-9,.])','\\1\\2',str("11 222 33 4 55 6 77")))

будет

1122233455677

?

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Есть несколько выражений, чтобы понять цифры.В этом случае я нахожу самый простой код в ref .Это может избавить от других персонажей.

print(re.sub(r'\s','',str("11 222 33 4 55")))
0 голосов
/ 26 февраля 2019

Попробуйте использовать обходные пути для определения чисел, окружающих пробел:

print(re.sub('(?<=\\d) (?=\\d)','',str("11 222 33 4 55 6 77")))

1122233455677

Идея здесь заключается в том, что для каждого пробела мы смотрим сзади и утверждаем, что присутствует цифра, а также мы смотрим в будущее и утверждаем, чтоприсутствует цифра.

Обратите внимание, что этот ответ не удалит пробелы, которые могут появиться на любом конце строки, но опять же, эти пробелы не находятся между числами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...