Как я могу найти этот шаблон в текстовом документе? - PullRequest
1 голос
/ 14 мая 2019

Так что я практикую некоторые RegEx в Python, и, по сути, я хочу просмотреть журнал номеров транзакций и посмотреть, возвращает ли какая-либо из них ошибку, такую ​​как Ошибка при активации телефона.

Я успешно выполнил поискв словаре для чего-то, что начинается с Error, а затем заканчивается Activation, чтобы, если бы это был планшет, часы и т. д., он все равно нашел бы ошибку.Однако в виде объемного текстового файла он не может успешно найти шаблон.

Таким образом, код, который я использовал, чтобы найти его в словаре, был таким, чтобы ключ словаря представлял собой номер транзакции и ошибку (или ее отсутствие)) было значение:

    for i in Transaction_Log:
        if bool(re.search("^Error.* Activation$", Transaction_Log[i])):  
            print("Found requested error in transaction number " + i)
            error_count += 1

Это работает, однако, используя ту же функцию поиска, вы не можете найти ничего, когда в настройках текстового файла, как это:

    Transnum: 20190510001 error: Error in phone Activation,
    Transnum: 20190510002 error: none,
    Transnum: 20190510003 error: Error in tablet Activation,

В идеале, он может найтитипа ошибок, и в случае успеха я могу сделать счетчик, чтобы увидеть, сколько их, однако мое логическое утверждение не верно при поиске таким способом в текстовом файле.

Хотя поиск только слова Ошибка работает.

1 Ответ

1 голос
/ 14 мая 2019

С помощью @CAustin я понял, что искал неправильный шаблон из-за того, что строка не начиналась с ошибки, а конец строки также имел запятую в конце.Удалив оба якоря, я смог найти то, что мне нужно было найти в этом примере, поэтому для всех, кто ищет что-то похожее, это было ...

    for line in testingDoc:
        if bool(re.search("Error.* Activation", line)):
            print("found error in transaction")
...