Python Regex, соответствующий только последнему вхождению при использовании re.findallPython

Программы на Python
Ответить
Anonymous
 Python Regex, соответствующий только последнему вхождению при использовании re.findall

Сообщение Anonymous »

Я наблюдаю странное поведение при анализе текста из html-файла с использованием регулярного выражения Python. Буду очень признателен за ваши предложения по регулярному выражению, которое мне следует использовать.

Код: Выделить всё

string = "[url=https://academia/course/3743]3743[/url], [url=https://academia/course/3963]3963[/url],    [url=https://academia/course/3850]3850[/url],"
# I want to extract 3743, 3963, 3850 from the above text
pattern = r".*?[url=.*]([0-9]+)[/url],.*"
result = re.findall(pattern, string)
print(result)

# Output
['3850']
Он печатает только последнее вхождение и пропускает остальные. Я тоже пробовал следовать этому, но это не помогает

python findall находит только последнее вхождение
Кто-нибудь может помочь с регулярным выражением, которое я должен использовать для получить все цифры

Код: Выделить всё

# expected output
[3743, 3963, 3850]
PS: я не могу использовать другие модули Python, такие как bs4. Мне нужно придерживаться собственных модулей Python.

Подробнее здесь: https://stackoverflow.com/questions/791 ... re-findall
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»