КОД:
word = 'aiuhsdjfööäö ; sdfdfd'
word1=re.sub('[^^äÄöÖåÅA-Za-z0-9\t\r\n\f()!{$}.+?|]',"""\[^^0-9\t\r\n\f(!){$}.+?|\]*""", word) ; print 'word= ', word
word2=re.sub('[^^äÄöÖåÅA-Za-z0-9\t\r\n\f()!{$}.+?|]',"""\[^^0-9\\t\\r\\n\\f(!){$}.+?|\]*""", word) ; print 'word= ', word
word3=re.sub('[^^äÄöÖåÅA-Za-z0-9\t\r\n\f()!{$}.+?|]',"""\[^^0-9\\\t\\\r\\\n\\\f(!){$}.+?|\]*""", word) ; print 'word= ', word
word4=re.sub('[^^äÄöÖåÅA-Za-z0-9\s()!{$}.+?|]',"""\[^^0-9\s(!){$}.+?|\]*""", word) ; print 'word= ', word
word5=re.sub('[^^äÄöÖåÅA-Za-z0-9\s()!{$}.+?|]',"""\[^^0-9\\s(!){$}.+?|\]*""", word) ; print 'word= ', word
word6=re.sub('[^^äÄöÖåÅA-Za-z0-9\s()!{$}.+?|]',"""\[^^0-9\\\s(!){$}.+?|\]*""", word) ; print 'word= ', word
F=open('suoriP.txt','w')
F.writelines(word1+'\n\n'+word2+'\n\n'+word3+'\n\n'+word4+'\n\n'+word5+'\n\n'+word6)
F.close
РЕЗУЛЬТАТ:
aiuhsdjfööäö\[^^0-9
(!){$}.+?|\]*\[^^0-9
(!){$}.+?|\]*\[^^0-9
(!){$}.+?|\]*sdfdfd
aiuhsdjfööäö\[^^0-9
(!){$}.+?|\]*\[^^0-9
(!){$}.+?|\]*\[^^0-9
(!){$}.+?|\]*sdfdfd
aiuhsdjfööäö\[^^0-9\ \
\
\(!){$}.+?|\]*\[^^0-9\ \
\
\(!){$}.+?|\]*\[^^0-9\ \
\
\(!){$}.+?|\]*sdfdfd
aiuhsdjfööäö \[^^0-9\s(!){$}.+?|\]* sdfdfd
aiuhsdjfööäö \[^^0-9\s(!){$}.+?|\]* sdfdfd
aiuhsdjfööäö \[^^0-9\s(!){$}.+?|\]* sdfdfd
ВОПРОС:
Я не понимаю, почему:
re не заменяет обратную косую черту, \ s, \ s, \\ s заменяются на \ s
re не заменяет \\ t \\ r \\ n \\ f на ';'
Я пытаюсь сгенерировать файл с помощью сложных шаблонов повторов с именами переменных.
Я не могу сгенерировать представление пробелов [^^äÄöÖåÅA-Za-z0-9\t\r\n\f()!{$}.+?|]
. Я имею в виду, если я найду в текстовом файле ';' с word1=re.sub('[^^äÄöÖåÅA-Za-z0-9\t\r\n\f()!{$}.+?|]',....
Я не могу заменить этот символ ';' по строке '[^^ äÄöÖåÅA-Za-z0-9 \ t \ r \ n \ f ()! {$}. +? |]'
Эта строка является строкой шаблона, которую я использую в re.search
для извлечения определенных слов в качестве переменных.
РЕШЕНИЕ <, КОТОРОЕ ОСТАВЛЕНО ПОЗЖЕ И ДОБАВЛЕНО ПОЗЖЕ. </p>
В итоге я заменил xxxx вместо пробелов спецсимволами. Позже объединить, разделить и объединить строку, добавив '\ t \ n \ f \ v \ r'.
strsub=smart_str('[^^äÄöÖåÅA-Za-z0-9xxxx()!{$}.+?|`\"£$\%&_+~#\'@><]+', encoding='utf-8', strings_only=False, errors='replace' )
word=re.sub('[^^äÄöÖåÅA-Za-z0-9\t\n\r\f()!{$}.+?|£$\%&_+~#\'@><]+',strsub,word)
for line in word.split('xxxx'):
str2=str2+'\\t\\n\\f\\v\\r'+line
F.writelines(str2)