У меня есть два почти идентичных выражения, и я получаю один хороший и другой способ неправильного вывода.simple regex issue
data/holidays/photos-2012-2013/word-another-more-more-5443/"><span class="bold">word another</span> - word</a>
regex = 'data/holidays/photos-2012-2013/.+?(\d{4})/"><span class="bold">(.+?)</span>(.+?)</a>'
word-another-more-more
, word another
и word
, все это в приведенных выше изменений. Вышеприведенные печатает правильно, список кортежей, как это: ('6642', 'word another', ' - word')
data/holidays/photos-2012-2013/word-another-more-more-5443/">word- another - <span class="bold">word another</span></a>
regex1 = 'data/holidays/photos-2012-2013/.+?(\d{4})/">(.+?)<span class="bold">(.+?)</span></a>'
Это выше печатает некоторые мусор код, несмотря на синтаксис, используемый в idential. Вывод - это список, содержащий кортежи, но полон нежелательного кода.
Вы видите, что не так во втором регулярном выражении?
Пожалуйста, не пытайтесь анализировать HTML с регулярными выражениями. Почему бы не использовать парсер HTML вместо этого? –
Если это так просто, зачем вам нужна помощь? :-) – paxdiablo
Я согласен с Martijn Pieters, использование регулярного выражения почти гарантированно завершится неудачей для синтаксического разбора HTML; вы, скорее всего, добьетесь успеха, если вместо этого вы можете использовать парсер XML/HTML. В целом, как общее предложение, я бы сказал, попробуйте запустить ваш вход через симулятор по адресу http://regexpal.com/ и посмотреть, работает ли ваше регулярное выражение так, как вы думаете. – neilr8133