2017-01-16 3 views
0

Я просматриваю PDF-файл, который я преобразовал его содержимое в строки, и есть много вхождений символа \ *** (* означает любой символ), происходящего внутри слов. Например:Как удалить вхождения *** в строке

сделки, золотая середина казалась работоспособной \ XE2 \ x80 \ x94norms четко сформулированы, подкрепленные санкциями соответствующих профессиональных ассоциаций

Использование text.replace("\\***","") явно не работает, и поэтому я был глядя на использование re.sub().

У меня возникли проблемы с синтаксисом (выражения reg), чтобы внести в аргументы и надеялся на какую-то помощь в этом.

+4

Является '*' буквально звездочка или просто какой-нибудь символ? – DyZ

+1

Вы пробовали 'text.replace (" \\ *** "," ")'? – fafl

+0

* означает любой символ @DYZ – borrimorri

ответ

4

как бой text.decode("utf8") ... вот что я думаю, что вы на самом деле хотите сделать

или вы могли бы лишить их с

text.decode("ascii","ignore") 

(в Python 3 Вы, возможно, потребуется использовать codecs.decode(text,"ascii","ignore") (не совсем уверен, что от руки))

+3

Игнорирование их является плохим идея, потому что слова слева и справа объединяются. – DyZ

+2

Я, конечно, не согласен ... я просто понял, что игнорировать было больше в соответствии с исходным вопросом ... –

+0

Это сработало фантастически, спасибо! – borrimorri

0

вы можете использовать ^ не фильтровать ни ASCII/UTF8 персонажу

import re 
text = re.sub(r'[^\x00-\x7F]', ' ', text) 

результат будет

'transaction, a middle ground has seemed workablenorms explicitly articulated, backed by sanctions of the relevant professional associations' 
+0

Спасибо, сделано ! – sgDysregulation

Смежные вопросы