Хотите извлечь буквенно-цифровой текст с определенными специальными символами, используя python regex

#python #regex #python-3.x #special-characters

#python #регулярное выражение #python-3.x #специальные символы

Вопрос:

У меня есть следующий текст, который я хочу в желаемом формате, используя python regex

 text = "' PowerPoint PresentationOctober 11th, 2011(Visit) to Lap Chec1Edit or delete me in ‘view’ then ’slide master’.'"
  

Я использовал следующий код

 reg = re.compile("[^w']")
text = reg.sub(' ', text)
  

Однако он выдает вывод в виде text = "'PowerPoint PresentationOctober 11th 2011 Visit to Lap Chec1Edit or delete me in â viewâ then â slide masterâ'" , что не является желаемым результатом.

Мой желаемый результат должен быть text = '"PowerPoint PresentationOctober 11th, 2011(Visit) to Lap Chec1Edit or delete me in view then slide master.'" Я хочу удалить специальные символы, за исключением следующих []()-,.

Ответ №1:

Вместо удаления символов вы можете исправить их, используя правильную кодировку:

 text = text.encode('windows-1252').decode('utf-8')
// => ' PowerPoint PresentationOctober 11th, 2011Visit to Lap Chec1Edit or delete me in ‘view’ then ’slide master’.'
  

Смотрите демонстрацию Python

Если вы захотите удалить их позже, это станет намного проще, например text.replace('‘', '').replace('’', '') , или re.sub(r'[’‘] ', '', text) .

Ответ №2:

Я получил ответ, хотя он был простым следующим образом, спасибо за ответы.

 reg = re.compile("[^w',.()[]]")
text = reg.sub(' ', text)