Forum » Programiranje » Regularni izraz - Python
Regularni izraz - Python
Luka91 ::
Imam problem s sestavljanjem regularnega izraza. Z nekega foruma hočem pobrati avtorje prispevka in to kar so napisali. Problem imam samo z enim prispevkom, ki vsebuje tudi znak za novo vrstico (\n). V izrazu uporabljam (.+), ta pa pobira vse znake, ne pa tudi znaka za novo vrstico. Če pa uporabim še re.DOTALL, ki pobira tudi znak za novo vrsto, pa mi moj izraz požre preveč.
Zanima me kako omejiti re.DOTALL, da ne požre preveč.
Zanima me kako omejiti re.DOTALL, da ne požre preveč.
MasterMind ::
Če parsaš HTML, poskusi http://www.crummy.com/software/Beautifu... . Sicer pa '.+' ti požre vse kar vidi :) .
Gentoo, KDE uporabnik.
Luka91 ::
Ja parsam HTML, samo bi to rad naredil sam. Tako da, hočem sestaviti tak regularen izraz, da bi mi delal prav za vse prispevke. Sigurno obstaja kakšen trik, da se to da naredit.
MasterMind ::
Vprašanje.
A je HTML regularen jezik ali konteksno neodvisen jezik? (ali kaj hujšega?)
A je HTML regularen jezik ali konteksno neodvisen jezik? (ali kaj hujšega?)
Gentoo, KDE uporabnik.
MasterMind ::
Ker pa je konteksno neodvisn, ne morš najbolje opisat stvari z regularnim jezikom.
Lahko določene izseke, sam bi ti raje priporočal da uporabiš kakšen pameten HTML parser (da prebavi nepravi HTML). Regularne jezike boš že kje drugje uporabu :) .
Lahko določene izseke, sam bi ti raje priporočal da uporabiš kakšen pameten HTML parser (da prebavi nepravi HTML). Regularne jezike boš že kje drugje uporabu :) .
Gentoo, KDE uporabnik.
Luka91 ::
Ne še kar vstrajam, da bom naredil z regularnimi izrazi, ker stran ni preveč zakomplicirana :) Če se bom pa kdaj lotil kakšne bolj zahtevne strani, pa bom uporabil kak HTML parser.
Zgodovina sprememb…
- spremenil: Luka91 ()
Luka91 ::
Spura hvala za ta namig. Problem je samo še, če sta v nizu dva znaka za novo vrsto, potem mi pobere samo do znaka za novo vrsto. Nekako ga moram prepričat, da pobira še vse naprej do neke oznake.
Luka91 ::
Sem že sam rešil problem. Trik je bi v tem da sem namesto (.+) napisal (.+?) To pomeni da pobira čim manj. Še enkrat hvala vsem za pomoč.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | kopiranje dela teksta iz večih datotekOddelek: Programska oprema | 821 (662) | kerrigh |
⊘ | python pomočOddelek: Programiranje | 3423 (2344) | Mavrik |
» | c# regularni izrazOddelek: Programiranje | 2029 (1727) | darkolord |
» | kako pobrat iz html kode podatkeOddelek: Izdelava spletišč | 1756 (1426) | qshop |