Как не убрать первое число в предложении и убрать более поздние вхождения чисел в Python? - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть предложение, состоящее из цифр и слов. Я ищу решение для удаления номеров, кроме как в начале. Я попробовал следующий код, но он удаляет все цифры.

x = '45 is fourth five 45 when 9 and 5 are multiplied'

re.sub('\d', '', x)

Его вывод был

'is Fourth five when and are multiplied'

Но вывод нужно выполнить следующим образом.

'45 is Fourth five when and are multiplied'

Примечание:

  1. Номер может присутствовать или не присутствовать в начале.

  2. Внутри предложения может быть alphanumeri c (460KG), затем его следует изменить (КГ). Это означает, что, кроме как в начале, номер должен быть удален в другом месте. пример:

6-apples price is 56Rs

Мне нужен вывод как

6-apples price is Rs

Ответы [ 2 ]

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

Вы можете использовать это:

x = '45 is fourth five 45 when 9 and 5 are multiplied'

string = re.sub(r'(?<!^)\b\d+\s', '', x)

Результат:

>>> print(string)

45 is fourth five when and are multiplied
0 голосов
/ 08 апреля 2020

Используя Библиотеку регулярных выражений Pypi , вы можете сделать:

import regex

x = '45 is fourth five 45 when 9 and 5 are multiplied'
print regex.sub(r'(?<=\D*\d+\D+)\d+ ?', '', x)

Вывод:

45 is fourth five when and are multiplied

Объяснение:

(?<=        # positive lookbehind, make sure we have before:
    \D*         # 0 or more non digits
    \d+         # 1 or more digits
    \D+         # 1 or more non digits
)           # end lookbehind
\d+         # 1 or more digits
 ?          # optional space
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...