регулярные выражения, одна строка или файл, в Python - PullRequest
0 голосов
/ 08 февраля 2019

В коротком коде Python3 я помещаю «сырую» строку в myList и удачно «очищаю» ее, т. Е. 31.2 "> удаляется. Но всякий раз, когда я пытаюсь сделать то же самое с той же строкой(или больше таких строк) в файле, я получаю AttributeError. Вот код, где я рекомендовал неудачную файловую операцию. Мой вопрос, почему я получаю эту ошибку, когда предложение извлекается из файла?

import re

##f = open("glo_v.txt", encoding='utf-8')
##f.seek(0)
##myList = f.read()

myList = '31.2"> I saw John two weeks ago'

a = re.match(r'\d.\.\d\"\>', myList)
b = a.group()
c = myList.replace(b, '')

print(c)

##f.close()

Ошибка следующая:

AttributeError: 'NoneType' object has no attribute 'group'

1 Ответ

0 голосов
/ 09 февраля 2019

Метод re.match сопоставляет только некоторый текст в начале строки, и похоже, что ожидаемое совпадение отсутствует, поэтому вы пытаетесь получить доступ к .group() объекта NoneType (None),

Вам необходимо заменить какой-либо текст, поэтому используйте

c = re.sub(r'\d+\.\d+">', '', myList)

Полный фрагмент:

import re
with open("glo_v.txt", encoding='utf-8') as f:
    myList = f.read()
    c = re.sub(r'\d+\.\d+">', '', myList)
    print(c)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...