Python поиск по регулярному выражению заканчивается тем, что не может обработать аргумент flags скомпилированным шаблоном - PullRequest
0 голосов
/ 17 апреля 2020

Я использую функцию search в выражении регулярного выражения через некоторое время l oop. Но программа заканчивается на ValueError: cannot process flags argument with a compiled pattern. Если я использую шаблон, который не скомпилирован, он заканчивается на: ValueError: ASCII and UNICODE flags are incompatible. Я использую Python 3,81. Как это исправить?

(Мне удалось успешно запустить программу с finditer.

#!/usr/bin/python3

import re

text = 'This island is beautiful and is large'

pattern = re.compile(r'\bis\b')
# pattern = r'\bis\b'

idx = 0
# match = re.search(pattern, text, pos=idx)

while True:
# while (match := re.search(pattern, text, idx)):
    # pattern = re.compile(r'\bis\b')
    match = re.search(pattern, text, idx)
    if match == None:
        break
    print(match.group())
    idx += match.endpos

1 Ответ

2 голосов
/ 17 апреля 2020

Третий аргумент re.search определяет флаги.

Если вы хотите указать позицию, используйте:

 Pattern.search(string[, pos[, endpos]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...