Удаление определенного шаблона из строки в Python?

#python #regex #string #substring

#питон #регулярное выражение #строка #подстрока

Вопрос:

У меня есть строка, такая как

«Это хорошая струна с некоторым размером в дюймах на конце 25,6 «»

Число перед двойными кавычками может быть числом с плавающей запятой или целым числом любой длины. Я хочу удалить все, что находится между пробелом и знаком двойной кавычки. Прямо сейчас я пытаюсь что-то сделать с функциями .find(), чтобы получить индекс знака двойной кавычки и последнего пробела, а затем удалить каждый символ между этими индексами. Есть ли какой-нибудь более разумный способ сделать это?

Ответ №1:

Мы можем попробовать использовать re.sub здесь:

 input = ' This is a nice string with some size in inches at the end 25.6" '
output = re.sub(r's d (?:.d )"s*

Шаблон регулярных  s d (?:.d )"s*$  выражений говорит:

 s        match one or more spaces
d        match one or more digits, followed by
(?:.d ) an optional decimal component
"         inches unit sign
s*       possible trailing whitespace, until
$         the end of the string
 


, '', input)
print(output)

This is a nice string with some size in inches at the end
Шаблон регулярных s d (?:.d )"s*$ выражений говорит: