#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(",")],"")
Это позволит найти все, что находится между пробелом и запятой, и удалить его.