У меня есть строка, как это, что мне нужно, чтобы разобрать на 2D массива:Python регулярное выражение
str = "'813702104[813702106]','813702141[813702143]','813702172[813702174]'"
эквив массив будет:
arr[0][0] = 813702104
arr[0][1] = 813702106
arr[1][0] = 813702141
arr[1][1] = 813702143
#... etc ...
Я пытаюсь сделать это с помощью Regex , Строка выше похожа на HTML-страницу, но я могу быть уверен, что это единственная строка в этом шаблоне на странице. Я не уверен, что это лучший способ, но это все, что у меня есть прямо сейчас.
imgRegex = re.compile(r"(?:'(?P<main>\d+)\[(?P<thumb>\d+)\]',?)+")
Если я бегу imgRegex.match(str).groups()
я получаю только один результат (первый куплет). Как я могу получить несколько совпадений назад или объект соответствия 2d (если такая вещь существует!)?
Примечание: Вопреки тому, как это может выглядеть, это не домашнее задание
Примечание часть ДЕЗ: Реальная строка встраивается в большой HTML файл и, следовательно, расщепление не представляется быть вариантом.
Я по-прежнему получаю ответы на это, поэтому я решил изменить его, чтобы показать, почему я не изменяю принятый ответ. Разделение, хотя и более эффективное в этой тестовой строке, не собирается извлекать детали из целого HTML-файла. I может объединить регулярное выражение и расщепление, но это кажется глупым.
Если у вас есть лучший способ найти детали из загрузки HTML (шаблон \d+\[\d+\]
уникален для этой строки в источнике), я с радостью изменю принятые ответы. Все остальное - академическое.
Я добавил, что я думаю, что arr [1] [0] и arr [1] [1] должны выглядеть, потому что это было не совсем ясно. но я не знаю ни одного python, поэтому я не могу помочь вам с вашим вопросом. – Kip 2008-12-06 13:37:34
Да, у меня было [2] [*] изначально тоже, но я не был уверен, что это просто отрывает сообщение, но я вижу вашу точку , Спасибо за ваше редактирование. – Oli 2008-12-06 13:39:15
Предполагаете, что вы имели в виду: str = "'813702104 [' 813702106] ',' 813702143] ',' 813702172 [813702174] '" – 2008-12-06 13:41:13