Удалите цифры между алфавитами и запятыми в Python, используя re.sub()

#python #regex

Вопрос:

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

 "January 1,1997"
"September 13,2000"
"January 1,1999"
"July 17,2000"
 

Я хочу удалить цифры между запятой и алфавитами, чтобы получить это:

 "January,1997"
"September,2000"
"January,1999"
"July,2000"
 

Я просмотрел много дел, но ни одно из них не подходит для моей ситуации.
Мой код таков

 s = re.sub("d{4}", "", s)
 

Это не работает.

Комментарии:

1. Что-то вроде re.sub(r'([a-zA-Z])s d ,', r'1,', text) будет сделано, см. демонстрацию регулярных выражений. Или re.sub(r'bs d ,', r',', text) ( демонстрация ). Существует множество вариаций.

2. если вам не нужно использовать re, вы можете сделать это с помощью нарезки строк и метода поиска строк и метода замены. т. е. x = x.replace(x[x.find(" "):x.find(",")],"") Это позволит найти все между пробелом и запятой и удалить его

3. Это работает!!! Я плачу! Мне так трудно понять язык регулярных выражений. Спасибо!!!!

4. @c-haworth: как насчет того, чтобы превратить комментарий в ответ, чтобы он мог быть принят операцией?

Ответ №1:

Если вам не нужно использовать re, вы можете сделать это с помощью нарезки строк и метода поиска строк и метода замены. т. е.

 x = x.replace(x[x.find(" "):x.find(",")],"") 
 

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