You are here: PSPad forum > České diskuzní fórum > Jak vyhledat určité písmeno na konci slova
Posted by: martin2306 | Date: 2022-09-18 15:13 | IP: IP Logged
Zdravím. Jak vyhledat určité písmeno na konci slova?
Příklad věty: Láďa neměl k lodi klíče a brečel.
Potřeboval bych najít "l" jen ve slově "neměl" a "brečel".
Něco jsem zkoušel, ale dopracoval jsem se buď k výběru všech "l,L" ve větě, nebo k "l" na konci věty.
Posted by: pspad | Date: 2022-09-18 16:16 | IP: IP Logged
Hledat: l\b
[x]Regularni vyrazy
\b je konec slova
Posted by: martin2306 | Date: 2022-09-18 18:08 | IP: IP Logged
Tak to nějak nefunguje. Vybereto všechna "l" ve větě. Stejný výsledek i s "l\B".
Posted by: pspad | Date: 2022-09-18 18:29 | IP: IP Logged
Nevybere. Nesmite se ridit tim, co je zvyrazneno. Zkuste hledat dalsi, pomoci F3
Posted by: martin2306 | Date: 2022-09-18 20:35 | IP: IP Logged
Je to nějaký šišatý. Když použiju F3, tak z "Láďa" to správně přeskočí na "neměl", slovo "lodi" správně vynechá pak to ale nesprávně přeskočí na "klíče" a pak na "brečel. Když jsem to zkoušel na delším textu tak to správně přeskakuje na slova s "l" na konci, ale občas to skočí i na slovo s "l" uvnitř, například "Dělám".
Posted by: martin2306 | Date: 2022-09-18 21:04 | IP: IP Logged
Tak jsem procházel delší text s F3 a zjistil jsem že to "l\b" nemá rádo češtinu. Když za "l" následuje písmeno "é,í,š,á", tak to hledání vyhodnotí jako "l" na konci slova. Proto to v té zkušební větě nesprávně označí slovo "klíče". Jinak třeba u angličtiny u slova "all" správně označí jen poslední "l". Takze u cestiny by to fungovalo jedine bez hacku a carek.
Posted by: martin2306 | Date: 2022-09-18 22:01 | IP: IP Logged
Tak jsem chvíli googlil a našel jsem hranatou závorku se stříškou kde se zakazují uvedená písmena v ní. Vyhledají se všechny "l" v textu a pomocí F3 se přeskakuje po slovech kde je "l" na konci slova a vynechají se písmena "é,í,š,á".
Tedy asi takto: l\b[^éíšá]
Vypadá to, že to funguje.
Posted by: martin2306 | Date: 2022-09-19 12:06 | IP: IP Logged
Dovětek: Asi záleží jaké konkrétní písmeno se hledá, tedy "kus od kusu". Když jsem ze zvědavosti zkoušel hledat v textu "ě" na konci slova příkazem "ě\b" tak to vyhledá pomocí F3 písmena "ě" uvnitř a na začátku slov. S příkazem "ě\B" to vyhledá s F3 správně "ě" na konci slov, ale... zase ty háčky! S F3 se vybere i "uvěříš", "těžko" atd. Takže výsledný příkaz je "ě\B[^šřž]".
Edited 1 time(s). Last edit at 2022-09-19 12:10 by martin2306.
Posted by: vbr | Date: 2022-09-20 09:03 | IP: IP Logged
Zdravím,
metaznaky \b a \B jsou v regulérních výrazech víceméně protikladné - mezi sebou se doplňují; \b označuje pozici (o nulovém rozsahu znaků) na slovní hranici - před začátkem nebo po konci slova; \B odpovídá jakékoliv jiné pozici (uvnitř slova nebo uvnitř neslovního řetězce - řady mezer apod.).
Pár zmíněných příkladů příkladů jsem zkoušel a zdají se fungovat správně (i s diakritikou ě\b se nenajde v "uvěříš" a najde např. v "tě").
Při zkratce F3 se opakuje hledání posledně použité v dialogu; pokud se ale mezitím dialog opět otevře, typicky načte do hledání zvýrazněný text - třeba nalezené "ě", místo předtím použitého výrazu "ě\b".
Mám pocit že v některé dřívější verzi PSPadu fungovaly tyto zástupné znaky \w \b aj. jen pro základní latinku; později ale i na běžné diakritické a jiné "zvláštní" znaky (problémy jsem zachytil s kombinovanými znaky diakritiky, skládanými zvlášť, třeba i jako nadepsané písmeno - aͤ, ale to je pro PSPad spíš okrajová záležitost).
Jde v tomto případě o nějakou aktuální verzi PSPadu?
(zde testováno s 5.0.7 (735), 32bit, Win 10).
vbr
Posted by: martin2306 | Date: 2022-09-23 21:19 | IP: IP Logged
Zdravím. Tak já mám asi starší verzi PSPadu:
5.0.6 (589), 64bit, Win 11
Zkusím najít novější verzi a znovu to vyzkoušet.
Editor PSPad - freeware editor, © 2001 - 2024 Jan Fiala, Hosted by Webhosting TOJEONO.CZ, design by WebDesign PAY & SOFT, code Petr Dvořák, Privacy policy and GDPR