Raspberry Pi Touch Display 2 je nově vedle 7palcové k dispozici také v 5palcové variantě. Rozlišení stejné 720 × 1280 pixelů. Cena 40 dolarů.
Telnet a ssh klient PuTTY postupně přechází na novou doménu putty.software.
Debian dnes slaví 32 let. Ian Murdock oznámil vydání "Debian Linux Release" 16. srpna 1993.
Policisté zadrželi odsouzeného drogového dealera Tomáše Jiřikovského, který daroval ministerstvu spravedlnosti za tehdejšího ministra Pavla Blažka (ODS) bitcoiny v miliardové hodnotě, a zajistili i darovanou kryproměnu. Zadržení Jiřikovského může být podle ministerstva důležité k rozuzlení kauzy, která vypukla koncem května a vedla ke konci Blažka. Zajištění daru podle úřadu potvrzuje závěry dříve publikovaných právních
… více »Administrativa amerického prezidenta Donalda Trumpa jedná o možném převzetí podílu ve výrobci čipů Intel. Agentuře Bloomberg to řekly zdroje obeznámené se situací. Akcie Intelu v reakci na tuto zprávu výrazně posílily. Trump minulý týden označil Tana za konfliktní osobu, a to kvůli jeho vazbám na čínské společnosti, čímž vyvolal nejistotu ohledně dlouholetého úsilí Intelu o obrat v hospodaření. Po pondělní schůzce však prezident o šéfovi Intelu hovořil příznivě.
Společnost Purism stojící za linuxovými telefony a počítači Librem má nově v nabídce postkvantový šifrátor Librem PQC Encryptor.
VirtualBox, tj. multiplatformní virtualizační software, byl vydán v nové verzi 7.2. Přehled novinek v Changelogu. Vypíchnou lze vylepšené GUI.
Eric Migicovsky, zakladatel společnosti Pebble, v lednu oznámil, že má v plánu spustit výrobu nových hodinek Pebble s již open source PebbleOS. V březnu spustil předprodej hodinek Pebble Time 2 (tenkrát ještě pod názvem Core Time 2) za 225 dolarů s dodáním v prosinci. Včera představil jejich konečný vzhled (YouTube).
Byla oznámena nativní podpora protokolu ACME (Automated Certificate Management Environment) ve webovém serveru a reverzní proxy NGINX. Modul nginx-acme je zatím v preview verzi.
Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 25.08. Přehled novinek i s náhledy a videi v oficiálním oznámení.
while ($xmlretezec =~ /(<NewsItem>[\s\S]+<\/NewsItem>)/g) {
$counter++;
$pole[$counter] = $1;
};
<NewsItem>....</NewsItem><NewsItem>+++++</NewsItem>
</NewsItem>
nechat probehnout cyklus a pak pokracovat, kde skoncil - tj za prvnim vyskytem </NewsItem>
a to opakovat az do konce souboru...
Predem diky za jakkoukoliv reakci, je mi jasny ze zrejme nechapu jak to funguje :-/
soubor.xml
třeba tento obsah
<xml> <NewsItem>prvni</NewsItem> <NewsItem>druhy</NewsItem> <NewsItem>treti</NewsItem> </xml>pak by se dal parsovat třeba tímto
#!/usr/bin/env python from elementtree.ElementTree import * root = ElementTree(file='soubor.xml') for news in root.getroot(): print news.texta výsledek by byl
prvni druhy tretiKdybys podrobněji popsal strukturu tvého xml souboru, dalo by se to napsat přímo na míru.
while($xmlretezec =~ s#(<NewsItem>[\s\S]+</NewsItem>)##) { $counter++; $pole[$counter] = $1; }nebo pokud se zbavím citové vazby na cyklus while
for($counter=0;$xmlretezec =~ s#<NewsItem>[\s\S]+</NewsItem>##;$counter++) { $pole[$counter] = $1; }což je mnohem lepší řešení, protože má o jeden řádek méně :))) (vtip)
Musim vas zklamat, ale nemate pravdu. Problem je v defaultni zravosti regexpu. Pokud tuto neomezite, coz jste neudelal, tak kod fungovat nebude. Navic jste v prikladu s cyklem for opomenul rici PERLu aby si nalezenou shodu zapamatoval. Nasledujici kod by uz mel fungovat, ma vsak jednu vlastnost ktera vy se nemusela byt zcela zadouci a to, ze modifikuje puvodni text v promenne $xmlretezec - vsechny nalezene shody proste z puvodniho textu vyrizne...
for($counter=0;$xmlretezec =~ s#(<NewsItem>[\s\S]+?</NewsItem>)##;$counter++) { $pole[$counter] = $1; }
Problem tkvi v tom, ze regularni vyrazy v PERL jsou zrave a snazi se najit co nejdelsi shodu, takze pro takto zadany regexp vezmou prvni znacku <NewsItem> a pak vsechno az po posledni znacku </NewsItem> kterou v promenne $xmlretezec najde. Staci omezit tuto defaultni zravost perlu pridanim '?' za '+' a kod se bude chovat tak jak ocekavate.
while ($xmlretezec =~ /(<NewsItem>[\s\S]+?<\/NewsItem>)/g) { $counter++; $pole[$counter] = $1; }
A pokud to ma jen prijit na konec nejakeho pole, tak to jde i takto
push @pole, $xmlretezec =~ /(<NewsItem>[\s\S]+?<\/NewsItem>)/g;
modifikátor:
s
Treat string as single line. That is, change ``.'' to match any character whatsoever, even a newline, which it normally would not match.
výsledok:
while ($xmlretezec =~ /\G.*?(<NewsItem>.+?<\/NewsItem>)/gs) { push @pole, $1; };
while ($xmlretezec =~ /(<NewsItem>.+?<\/NewsItem>)/gs) { push @pole, $1; };Viz:
$ perl -le '$/=undef;$a=<>;while($a=~/(<NewsItem>.+?<\/NewsItem>)/gs){print $1}' <<EOF <xml> <NewsItem>pr vni</NewsItem> <NewsItem>druhy</NewsItem> <NewsItem>tr et i</NewsItem> </xml> EOF
while ($xmlretezec =~ /(<NewsItem>(.+?)<\/NewsItem>)/gs) { push @pole, $1 if $2; };
.*?
, keď element obsahuje text s dĺžkou 0.
python << EOF from elementtree.ElementTree import * xml = ''' <xml> <NewsItem attr='bleble'>prvni</NewsItem> <NewsItem >dr uhy<tento_tag_nechci>ignoruj</tento_tag_nechci></NewsItem> <NewsItem>treti</NewsItem> </xml> ''' elem = fromstring(xml) pole = [news.text for news in elem.getiterator('NewsItem')] print pole EOFUvádím výsledek pro ty, kterým je proti srsti vzít do myši úplně cizí kód a strčit si ho do terminálu
['prvni', 'dr\n uhy', 'treti']
['prvni', 'dr\n <tento_tag_nechci>ignoruj</tento_tag_nechci>uhy', 'treti']keď už
python << EOF from elementtree.ElementTree import * import re xml = ''' <xml> <NewsItem attr='bleble'>prvni</NewsItem> <NewsItem >dr uhy<tento_tag_nechci>ignoruj</tento_tag_nechci></NewsItem> <NewsItem>treti</NewsItem> </xml> ''' elem = fromstring(xml) for e in elem.getiterator(): print (e.tag, e.text) EOFVýsledek:
('xml', '\n ') ('NewsItem', 'prvni') ('NewsItem', 'dr\n uhy') ('tento_tag_nechci', 'ignoruj') ('NewsItem', 'treti')
že se ptal na implementaci v perlu což výslovně uvedl v přímo v titulku dotazu.To že J.M. neustále u všech hledaných řešení doplňuje i o svoje řešení v Pythonu, to vidím jako plus a vůbec bych ho od toho neodrazoval. Jestli dotazující řešení v Pythonu nepoužije, nevadí (může to mlčky přehlédnout). Ale pro ostatní "přihlížející" návštěvníky to může být zajímavá ukázka a alternativa, jak to lze řešit i jinak. Takže jen tak dál, i když je požadavek třeba na Perl, proč si neprohlédnout i jiná řešení ...
<NewsItem><b>Category:</b> <i>title</i></NewsItem>a podobne, ako príklad to snáď postačuje
Tiskni
Sdílej: