Portál AbcLinuxu, 1. května 2025 12:49

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
17.4.2006 17:49 Kníže Ignor | skóre: 19 | blog: stoupa
Rozbalit Rozbalit vše Re: Dotaz na regexp
Odpovědět | Sbalit | Link | Blokovat | Admin
&[^a-z]+ | &$

buď je za ním alespoň jedno nepísmeno nebo je na konci řetězce
Jestli máš zálohu mého blogu, tak mi ji pošli. Nějak jsem si ho smazal :-)
17.4.2006 17:53 Leoš Literák | skóre: 74 | blog: LL | Praha
Rozbalit Rozbalit vše Re: Dotaz na regexp
A co treba string "Otec&Syn" ? Nechci zakazat pismena za ampersandem, jenom kdyz jsou ukoncena strednikem.
Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
17.4.2006 17:53 Kníže Ignor | skóre: 19 | blog: stoupa
Rozbalit Rozbalit vše Re: Dotaz na regexp
aha, ten středník jsem přehlédl, pak tedy &[^a-z]+[^;] | &. | &$
Jestli máš zálohu mého blogu, tak mi ji pošli. Nějak jsem si ho smazal :-)
17.4.2006 17:55 Kníže Ignor | skóre: 19 | blog: stoupa
Rozbalit Rozbalit vše Re: Dotaz na regexp
respektive :-) &[^a-z]+[^;] | &.$ | &$

jestli to není dobře, tak už dál hádat nebudu :-)
Jestli máš zálohu mého blogu, tak mi ji pošli. Nějak jsem si ho smazal :-)
17.4.2006 17:58 Kníže Ignor | skóre: 19 | blog: stoupa
Rozbalit Rozbalit vše Re: Dotaz na regexp
není, tohle nevezme &;;

už mlčím :-)
Jestli máš zálohu mého blogu, tak mi ji pošli. Nějak jsem si ho smazal :-)
17.4.2006 17:56 Wolf | skóre: 7
Rozbalit Rozbalit vše Re: Dotaz na regexp
Odpovědět | Sbalit | Link | Blokovat | Admin
tohle me fungovalo, nejsem autor, ale uz si bohuzel nepamatuju, kde jsem to nasel...

&(?![a-zA-Z]{2,6};|#[0-9]{3};)
17.4.2006 18:14 David Jaša | skóre: 44 | blog: Dejvův blog
Rozbalit Rozbalit vše Re: Dotaz na regexp
Odpovědět | Sbalit | Link | Blokovat | Admin
A proč se vlastně ptáš v blogu a ne v diskusi? ;-)
oVirt | SPICE
17.4.2006 18:27 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Dotaz na regexp
Třeba se to netýká tématu tohoto serveru :-D
When your hammer is C++, everything begins to look like a thumb.
Yin avatar 18.4.2006 15:53 Yin | skóre: 39 | blog: Yinotopia | Slovesnko, Košice
Rozbalit Rozbalit vše Re: Dotaz na regexp
Leoš tu v tomto blogu informuje o vývoji Abíčka, zverejnil zdrojové kódy Abíčka a každý o kom viem, že mu s Abíčkom pomáha, jeho blog sleduje...
Nikdy nie je tak zle, aby to jeden poharik nemohol ešte zhorsiť.
18.4.2006 16:17 Leoš Literák | skóre: 74 | blog: LL | Praha
Rozbalit Rozbalit vše Re: Dotaz na regexp
protoze nechci dostat vynadano, ze je to offtopic ;-)
Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
David Watzke avatar 18.4.2006 17:45 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Dotaz na regexp
Myslím, že by si to nikdo nedovolil :-)
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
19.4.2006 06:32 Leoš Literák | skóre: 74 | blog: LL | Praha
Rozbalit Rozbalit vše Re: Dotaz na regexp
Ale uz se jednou stalo, kdyz jsem se ptal, zda mi chcipa monitor.
Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
17.4.2006 20:13 jiri.v
Rozbalit Rozbalit vše Re: Dotaz na regexp
Odpovědět | Sbalit | Link | Blokovat | Admin
snad by melo fungovat &(?!\w+;)
17.4.2006 21:40 razor | skóre: 33
Rozbalit Rozbalit vše Re: Dotaz na regexp
Bohužel operator ?! v dané syntaxi není
17.4.2006 22:12 Leoš Literák | skóre: 74 | blog: LL | Praha
Rozbalit Rozbalit vše Re: Dotaz na regexp
Ale v Java Pattern je, pak bych mozna mel dalsi duvod opustit jakarta regexp. Prvnim duvodem je udajna pomalost, nedavno jsem zahledl nejaky benchmark, kde jej porazili snad uplne vsichni.

Kazdopadne diky, tenhle figl jsem neznal.
Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
18.4.2006 07:42 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Dotaz na regexp
tento figl je najcistejsie riesenie. osobne by som sa vsak priklonil k tomuto regexpu. Riesi aj ciselne entity.
Resp, s upravou
&(?![a-zA-Z][a-zA-Z0-9]+;|#[0-9]+;|#[xX][a-fA-F0-9]+;)
a ak nema kontrolovat spravnost ciselnych entit, tak postacuje
&(?!#?[a-zA-Z0-9]+;)
18.4.2006 09:04 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Dotaz na regexp
Použít vyhlížení (?!…) když je to přímo v java.util.regex je asi nejlepší. Bez vyhlížení to IMHO nepůjde zapsat jako jedno porovnání a muselo by se to udělat nadvakrát.
Yin avatar 18.4.2006 15:59 Yin | skóre: 39 | blog: Yinotopia | Slovesnko, Košice
Rozbalit Rozbalit vše Re: Dotaz na regexp
a pomohlo to?
Nikdy nie je tak zle, aby to jeden poharik nemohol ešte zhorsiť.
17.4.2006 22:12 Martin Tůma | skóre: 39 | blog: RTFM | Praha
Rozbalit Rozbalit vše Re: Dotaz na regexp
Odpovědět | Sbalit | Link | Blokovat | Admin

Zkusil bych něco takovýho:

(&)[^;]*[[:space:]]

(shoda v prvním podřetězci je přesně ten hledaný &)

IMHO tam musíš mít nějakej oddělovač, kterej ti určí, kdy končí entita (v mé "ukázce" jsem tam dal jenom bílé znaky, ale tu množinu lze samozřejmě rozšířit), jinak to není regulární jazyk.

Každý má právo na můj názor!
17.4.2006 22:14 Martin Tůma | skóre: 39 | blog: RTFM | Praha
Rozbalit Rozbalit vše Re: Dotaz na regexp

Teda abych se vyjádřil lépe - oddělovač, kdy už to nemůže být entita.

Každý má právo na můj názor!
18.4.2006 08:15 User682 | skóre: 38 | blog: aqarium | Praha
Rozbalit Rozbalit vše Re: Dotaz na regexp
Odpovědět | Sbalit | Link | Blokovat | Admin
cau,

a co takhle v xml vybrat vsechny entity a nedelat to vybec pres regularni vyrazy ? ne-li, ze si pres nejake dtd overis, zda to vubec je entita, co te zajima.

gf
18.4.2006 10:07 Leoš Literák | skóre: 74 | blog: LL | Praha
Rozbalit Rozbalit vše Re: Dotaz na regexp
Mam titulek nejakeho clanku, ktery chci osetrit. Nekteri mamlasi do nej strkaji HTML znacky, proto je musim vyescapovat. Jinde escapuji ampersand, takze tuto cinnost nesmim provadet, zatimco jine servery escapovani nedelaji a musim jej udelat ja (jinak neni stranka html validni).
Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
18.4.2006 14:39 User682 | skóre: 38 | blog: aqarium | Praha
Rozbalit Rozbalit vše Re: Dotaz na regexp
anebo me pomohla JTidy. a neni **snad** nutne, aby mel dokument, ktery zpracovavas, html hlavicku. das pouze kus html. pouzivam priblizne toto na cisteni html - douprav si sam. a useri s jejich html mi mohou potom vlezt na zada, kdyz to uplne nezmrsi.
   Tidy tidy = new Tidy();
//   Configuration tidyconfig = new Configuration();
  
  tidy.setXHTML(true);

  tidy.setXmlOut(true);
//  tidy.setXmlPIs(true);
  tidy.setXmlPi(true);
  tidy.setMakeClean(true);
  tidy.setAltText("");
  tidy.setPrintBodyOnly(true);
  tidy.setFixUri(true);
  tidy.setWord2000(true);
  tidy.setDropFontTags(true);
  tidy.setSmartIndent(true);
  tidy.setInputEncoding("utf-8");
  tidy.setOutputEncoding("utf-8");

//  tidy.setHideComments(true);
//  tidy.setXmlTags(true);

  tidy.setShowWarnings(false);


InputStream inputStream = 
	new BufferedInputStream( new FileInputStream(ConvertedFileName));


OutputStream zeroout = new ByteArrayOutputStream();
  org.w3c.dom.Document ThisDocument = tidy.parseDOM(inputStream, zeroout);

	if(ThisDocument == null)   {
	   System.err.println("Document nejde opravit......");
             // vlozit, jak je
        }  else  {

           // nejam vlozit dane xml - print pretty xml/xhtml, tisk vnitrku xml znacky.....

        }

bye gf
18.4.2006 16:16 Leoš Literák | skóre: 74 | blog: LL | Praha
Rozbalit Rozbalit vše Re: Dotaz na regexp
Diky, ale ja vazne neparsuji HTML. Dostanu z RSS titulek clanku a musim jej osetrit, protoze do nej vydavatele cpou nesmysly a kazdy to dela jinak. Na tohle je opravdu lepsi regexp nez z jednoho textu delat HTML, prohnat jej tidy a pak zase vytahovat z HTML ten text.
Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
18.4.2006 16:49 User682 | skóre: 38 | blog: aqarium | Praha
Rozbalit Rozbalit vše Re: Dotaz na regexp
resil jsem podobnou ulohu na toto tema. priznam se, ze neni zcela vyresena.

osobne, kdybych delal toto, tak to resim urcite pres nejake overeni pres dtd. osobne vykon je posledni co bych v teto dobre resil.

kdyz uz nutne pouzit regularni vyraz, tak jenom na bloky mezi znaky ';' .

snazil jsem se podobnou ulohu resit pres regularni vyrazy, ale nevidim to jako pouzitelne reseni. je sice fajn, ze ty priblizne urcis co to je entita. ale co kdyz takova vubec neexistuje ? pak se dostavas opet k nevalidnimu xhtml. staci kdyz se uzivatel upise v nazvu dane html entity.

kdyz uz pak vyrazovat elementy, tak elegantne by to melo jiz pres XPath.

nechci ti do toho kecat, ale podle me nejake detekce, ze to je __asi__ znacka ci entita s 2-4 znaky neni resenim. ze by ! nebo ϊ? tot muj nazor, nikomu neberu jeho.

gf
18.4.2006 19:31 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Dotaz na regexp
gramatika entity je stara ako sgml samo. ale mam dojem, ze je potrebny negative lookahead ...
s/&(?<!#?[a-zA-Z0-9]+;)/&/g
hajma avatar 18.4.2006 10:27 hajma | skóre: 27 | blog: hajma | Říčany
Rozbalit Rozbalit vše Re: Dotaz na regexp
Odpovědět | Sbalit | Link | Blokovat | Admin
A co takhle pustit na to tidy?
21 promarněných znaků
19.4.2006 13:25 happy | blog: happy | Praha
Rozbalit Rozbalit vše Re: Dotaz na regexp
Odpovědět | Sbalit | Link | Blokovat | Admin
A nebylo by jednodusi napsat si nejaky jedoduchy lexer? Pripadne pouzit nejaky nastroj typu ANTLR?

- pavel

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.