Регулярное выражение для обрезки числа в конце строки - PullRequest
1 голос
/ 29 мая 2020

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

Str = 'part-at-1234'

Новая строка должна быть str= 'part-at'

Я написал следующее регулярное выражение

(-\d+)

Мое регулярное выражение также соответствует дате. Я хочу написать регулярное выражение, которое соответствует только строке, не включая дату. Заранее спасибо

Ответы [ 4 ]

1 голос
/ 29 мая 2020

Если дата имеет формат, например, 12-12-20, вы можете сопоставить дефис и цифры 1+ и не указывать di git перед дефисом.

(?<!\d)-\d+$

Демо Regex | Python демо

Пример кода

import re

regex = r"(?<!\d)-\d+$"
test_str = ("part-at-1234\n"
    "part-at-12-12-2020")

result = re.sub(regex, "", test_str, 0, re.MULTILINE)

if result:
    print (result)

Вывод

part-at
part-at-12-12-20
1 голос
/ 29 мая 2020

попробуйте это, \d+ любой di git один или несколько & $ соответствует концу строки

import re

re.sub("-\d+$",'' , "part-at-1234")

'part-at'
0 голосов
/ 29 мая 2020

Попробуйте следующее

s = re.sub("^\d+\s|\s\d+\s|\s\d+$", " ", p)
0 голосов
/ 29 мая 2020

Попробуйте следующие регулярные выражения:

.+\D+(?=\d+)

Или вы всегда можете выбрать числа в конце этим, а затем заменить его пустой строкой :

\d+$

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