re.sub не заменяет, если вся строка не совпадает - PullRequest
0 голосов
/ 22 марта 2019

Немного новичка в регулярных выражениях здесь.У меня есть эта строка:

year_with_txt = 'foo 1999' и

year_only = '1999'.

Я хочу пропустить любые 4 последовательные цифры.Когда я делаю это так:

re.sub(r'^[0-9]{4}$', '', year_only)

или

re.sub(r'^\d{4}$', '', year_only)

, это работает.Однако, с другим текстом, это не:

re.sub(r'^[0-9]{4}$', '', year_with_txt)

или

re.sub(r'^\d{4}$', '', year_with_txt)

Есть предложения?

1 Ответ

2 голосов
/ 22 марта 2019

Причина - ваши токены ^ и $.Они относятся к началу и концу строки соответственно.

re.sub(r'\d{4}', '', year_with_txt) работает.

Вывод:

'foo '

Примечание: вы определилистрока как year_with_txt, но в остальной части кода она называется year_with_text.

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