Как убрать последний пробел и следующие di git из переменной python - PullRequest
0 голосов
/ 26 февраля 2020

мой код извлекает эти строки из файла

PF00000 name 1

PF00000 name 1

PF00000 AA-CD_name 1

и мне нужно удалить последний пробел и номер, оставив только

имя PF00000

имя PF00000

PF00000 AA-CD_name

Я пытался использовать:

Var = re.sub(r'.*([0-9])$', "",Var)

и

Var = re.sub(r' \d.*$', "",Var)

, но ни один не работал, я все еще получаю тот же

имя PF00000 1

имя PF00000 1

PF00000 AA-CD_name 1

Ответы [ 3 ]

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

Регулярное выражение:

r' [0-9]$'
  1. Соответствует одному пробелу.
  2. [0-9] Соответствует di git. (или используйте \d)
  3. $ Соответствует концу строки.

Код:

import re

tests = [
    'PF00000 name 1',
    'PF00000 name 1',
    'PF00000 AA-CD_name 1'
]

regex = re.compile(r' [0-9]$')
for test in tests:
    test = regex.sub('', test)
    print(test)

Отпечатки:

PF00000 name
PF00000 name
PF00000 AA-CD_name
0 голосов
/ 26 февраля 2020

Я подозреваю, что вы хотите:

Var = re.sub(r' \d*$', "",Var)

Или:

fields=Var.split()
Var = ' '.join(fields[:-1])

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

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

Попробуйте:

Var = Var.rsplit(maxsplit=1)[0]

(Кстати, ваша вторая попытка выглядит правильно - вы уверены, что это пробел, а не, например, символ табуляции?)

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