Rybka:
--------------------------------------------------------------------------------
Nějakým způsobem jsem se prokousala tím, že je třeba rozepisovat
jednotlivé možnosti velkých a malých textů včetně případů, kdy tam
může a nemusí být tečka. Ale poslední věci na čem mám zásek je tento
výraz:
[b](?![^<]*>)(?<=[a-z]+)\s(?=s\.\sr\.\so\.)|(?![^<]*>)(?<=.*\ss\.)\s(?=r\.\so\.)
|(?![^<]*>)(?<=.*\ss\.\sr\.)\s(?=o\.)[/b]

Živá ukázka (viz https://regexr.com/56qjf )

V PSPadu se to do konvertoru musí rozepsat na jednotlivé řádky, to je
jasné, ale jakmile se to rozepíše, a spustí nahrazování, nahradí se pouze
jedna mezera a další to vynechá, protože už další pravidla neplatí
kvůli absenci bílé mezery, která je v tu chvíli nahrazena. Je nějaká
možnost, jak tento regulár napsat jinak, aby hned v jednom výrazu našel
všechny mezery, aby se to nemuselo rozepisovat na všechny možnosti (jestli
počítam dobře, tak by se jinak muselo rozepsat 3×4 možností + další
možnosti na velké a malé znaky)?

Dokáže vůbec regulár najít více takto oddělených znaků?
--------------------------------------------------------------------------------


Zdravim,
musim priznat, ze konvertory v PSPadu moc nepouzivam, ale pokud spravne chapu
zamer tehle konverzni upravy a u konvertoru neni vyuziti regulernich nejak
odlisne od bezneho hledani a nahrazovani v dialogu, melo by byt mozne nahrazeni
provest primo najednou pro "s.r.o." s variacemi v mezerach s tim, ze hledany i
nahrazovany retezec bude primo obsahovat i pozadovana pismena a tecky. (nejenom
mezery s podminkami na nasledujici pismena dotycne zkratky). Tenhle konverzni
radek se stejne diky "lookarounds" jevi jako jednoucelovy, snad by slo hledane
fraze najit a nahradit rovnou.
(nevim, jestli muze byt problem velikost pismen - v beznem uzu to asi budou vzdy
mala pismena, resp. vsechna velka pri uziti verzalek, pokud bude treba velikost
pismen zachovat i v jinych kombinacich, asi bude treba je rozepsat jednotlive;
tohle ale ve vychozim vyrazu zrejme zachyceno neni.
Vyse uvedene omezeni na fixni delku nalezu se tyka "lookbehind assertion" -
napr. (?<=...)  -  pokud obsahuji kvantifikatory * + , v dane knihovne regexp
fungovat nebudou.
Pokud by se konverzni radek nastavil primo na retezec (mimo "lookbehind"),
takove omezeni by se ho  netykalo.

Zdravim,
   vbr

-- 
<https://forum.pspad.com/read.php?1,73621,73789>
PSPad freeware editor https://www.pspad.com

Odpovedet emailem