Byla vydána nová verze 2.4.68 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 13 zranitelností.
Apple na své vývojářské konferenci WWDC26 (Worldwide Developers Conference, keynote) představil řadu novinek. Vypíchnout lze novou generaci Apple Intelligence a zbrusu novou Siri, která dostala název Siri AI. Kvůli Aktu o digitálních trzích (DMA) však funkce Siri AI nebudou v systémech iOS 27 a iPadOS 27 k dispozici uživatelům v Evropské unii.
Byla vydána nová verze 1.18.0 distribučního frameworku Flatpak (Wikipedie), tj. technologie umožňující distribuovat aplikace v podobě jednoho instalačního souboru na různé linuxové distribuce a jejich různá vydání. Přehled novinek na GitHubu. Vypíchnout lze podporu rozhraní /dev/kfd pro výpočty na kartách AMD (AMDKFD).
aMule (Wikipedie), tj. multiplatformní klient pro peer-to-peer sdílení souborů pro sítě eD2k and Kademlia, byl po více než pěti letech od vydání poslední verze 2.3.3, vydán v nové major verzi 3.0.0 (GitHub). S novou webovou stránkou a dokumentací.
Byly vyhlášeni vítězové a zveřejněny vítězné zdrojové kódy (YouTube, GitHub) již 29. ročníku soutěže International Obfuscated C Code Contest (IOCCC), tj. soutěže o nejnepřehlednější (nejobfuskovanější) zdrojový kód v jazyce C.
Evropská komise předložila evropský balíček pro technologickou suverenitu, tedy soubor opatření, která mají posílit kapacity EU v oblasti polovodičů, umělé inteligence, cloudu a open source. To Evropě pomůže stát se lídrem v oblasti umělé inteligence, posílit její digitální autonomii a vytvářet podmínky pro udržitelnější digitální budoucnost.
OpenCV (Open Source Computer Vision, Wikipedie), tj. open source multiplatformní knihovna pro zpracování obrazu a počítačové vidění, byla vydána v nové major verzi 5.
Byla vydána nová verze 9.7 multiplatformní digitální pracovní stanice pro práci s audiem (DAW) Ardour. Přehled novinek, vylepšení a oprav v poznámkách k vydání.
Vývojáři webového prohlížeče Ladybird dnes oznámili, že mění způsob vývoje. S blížícím se vydáním alfa verze přestávají přijímat veřejné pull requesty. Všechny otevřené veřejné pull requesty budou uzavřeny. Tým nedokáže garantovat bezpečnost AI generovaných pull requestů.
OpenLogi (GitHub) je open source náhrada aplikace Logi Options+ pro přizpůsobení myší od společnosti Logitech. Zatím běží pouze na macOS.
Zdravím,
potřeboval bych poradit s regulárním výrazem v Pythonu (mám verzi 2.5), který by podle mne měl být velmi snadný, přesto se mi však stále nedaří, aby fungoval tak, jak chci.
Konkrétně potřebuji, abych v řetězci našel takovou sekvenci znaků, která najde v řetěci číslo, ovšem s podmínkou, že před číslem nesmí být sekvence znaků "log" a za číslem nesmí být znak ".".
Pro lepší pochopení problému to bude sloužit k nahrazení nalezeného čísla za číslo ve tvaru float, teda za nalezené číslo přidám ".0". Výjimky jsou zřejmé: nechci nahradit "log10" za "log10.0" a nechci nahradit číslo, které již ve tvaru float je. Nahrazování hodím do cyklu a tím se postupně nahradí všechna int čísla.
Já bych to úplně chápal takto, ovšem Python ne :)
import re
str = 'retezec 246 obsahujici 4564 cisla a vyjimky: log10 5.2'
p = re.compile("^(log)([0-9]+)(^.)")
print re.match(p, str)
n=re.match(p, str)
if n: print n.group(1)
Mimochodem je jasné, že v tomto pokusném zdrojáku nemám cyklus, a proto dojde jen k nalezení první odpovídající sekvence znaků.
Mnohokrát děkuji za pomoc.
(?<=log)[0-9]+(?=\.)
Moc díky, funguje to zatím nejlíp ze všech mých pokusů... :)
Ale narazil jsem na tři problémy, popsané v komentářích. Jsem fakt amatér v regulárních výrazech (ale než jsem se zde zeptal, studoval jsem samozřejmě manuál, ale např. to "?<=" jsem v něm vůbec nenašel), tak nevím, jestli to jimi vůbec jde (ty tři problémy), nebo si s tím budu muset pohrát pomocí podmínek. Díky moc, věřím, že zkušeným to zabere jen pár vteřin...
(mimochodem, už chápu, proč jsi napsal = místo !, já taky musel...)
import re
str = 'nejake znaky 6.0 '
p = re.compile("(?<=log)([0-9]+)(?=\.)")
print re.search(p, str)
n=re.search(p, str)
if n: print n.group(1)
#pokud je tam 246.0 najde 24, pokud je tam napr. log123, najde 23, potreboval bych, aby ignoroval cele cislo
#jeste problem: najde cislo/cisla za znakem "."
(?<!log)((?<=\D)|\b)(\d+) (dúfam, že to python pozná, používam perl)(?<!\.)
(?<!log)(?<!\d)(?<!\d\.)(\d+) (dnes už naposledy)
Ještě pořád to dělá 2 věci, které si nepřeji:
pokud je tam 12.345, najde 1
pokud je tam 1.2345, nejde 2345
Jinak mnohokrát děkuji, na tyto dvě chyby bych už možná přišel sám, ale kdyby ne, tak by už tento dotaz nebyl aktuální a byl by považován za vyřešený (což jsem zrušil). Děkuji za pochopení ;)
A já bych potřeboval, aby to v těchto případech nenašlo nic. (pro jistotu doplňuji...)
str = 'retezec 246 obsahujici 4564 cisla a vyjimky: log10 5.2' # cokoliv
p = re.compile('(?<!log)(?<!\.)(?<!\d)\d+(?!\d)(?!\.)') # osetrit vsechny pripady
n = p.findall(str)
if n:
for fixn in n:
…
Dále viz re.sub .
Mnohokrát Ti děkuji! Fakt jo, vyřešil jsi můj problém, se kterým už jsem se vážně dlouho trápil a nikdo mi nedokázal pomoci. Funguje to přesně tak, jak jsem chtěl. Jen bych byl ještě moc vděčný za slovní popis toho regulárního výrazu, abych to dokonale pochopil a příště se nemusel ptát... ;)
Jinak tady je ten prográmek, kvůli kterému jsem to potřeboval:
retez=raw_input("Zadej retezec: ")
import re
import string
reg = re.compile("(?<!log)(?<!\.)(?<!\d)(\d+)(?!\d)(?!\.)")
while reg.search(retez):
x = reg.search(retez)
nalez = str(x.group(1))
novy=nalez+".0"
retez=string.replace(retez, nalez, novy, 1)
print retez
Ještě jednou díky :)
Ve zkratce jde o to, že ta sekvence čísel nejen nesmí následovat za "log" a předcházet tečce, ale zároveň nesmí předcházet a následovat jakékoliv číslici a i následovat tečce, jinak dostaneš fragmenty, které zjevně odpovídají té úvodní podmínce.
Tiskni
Sdílej: