Portál AbcLinuxu, 27. července 2025 00:21


Dotaz: regexp na chybne atributy

22.6.2006 10:44 tyctor | skóre: 13
regexp na chybne atributy
Přečteno: 84×
Odpovědět | Admin
ahojte
nejako ma nenapada ako napisat regexp, ktory matchne chybny html atribut ak title obsahuje vnutri uvodzovky:
napr.: <a title="nejaky titulok" chybna cast" >
regexp pre python, ktora matchne aj spravny:
(?P<badtag>\<a+\s+title=\".*?\"[^<>]*?\>)" takze mu potrebujem este povedat aby .*? obsahovala minimalne 1 uvodzovky navyse.
pomoze niekto? ;o)
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

22.6.2006 12:36 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: regexp na chybne atributy
Odpovědět | | Sbalit | Link | Blokovat | Admin
[^"]*("[^"]*)+
22.6.2006 15:20 tyctor | skóre: 13
Rozbalit Rozbalit vše Re: regexp na chybne atributy
diky to je ono
este som to trochu upravil. cele to mam takto:
(?P<badtag>\<a\s+title=\"[^\"]+?\"(?P<badpart>[^\"<>]*(?:\"[^\"<>]*)+?)\>)
22.6.2006 12:44 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: regexp na chybne atributy
Odpovědět | | Sbalit | Link | Blokovat | Admin
Asi bych to dělal takhle:
#!/usr/bin/env python
import elementtree.ElementTree

def get_title(stream):
    print stream
    stream += '</a>'
    tree = elementtree.ElementTree.fromstring(stream)
    return tree.get('title')

try:
    print get_title('<a title="nejaky titulok" >')
    print get_title('<a title="nejaky titulok chybna" cast" >>')
except:
    print 'Je tam nejaka chyba'
Funkce get_title() vrací titulek a když se to nepovede, tak vyhodí výjimku.
22.6.2006 13:09 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: regexp na chybne atributy
#!/usr/bin/perl

($/, $\) = ('>', "\n");

while (<>) {
  print $ARGV unless m/\A[^<]*<(?:\w+(?:\s+\w+="[^"]*")*)|(?:\/\w+)>/;
}

pouzitie:
perl script.pl *.html
vypise nazvy suborov s chybnymi elementami ten regex nie je 100%tny, pre html myslim postacuje

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.