Zdravim,
pri overovani vyrazu k nahrazeni opakovanych rozdelovniku v postu:
https://forum.pspad.com/read.php?1,75218#msg-75218
jsem si vsiml necekanych rozdilu mezi hledanim a nahrazenim regulernim vyrazem.

pouzil jsem upraveny text s doplnenymi spojovniky, ktere je treba nahradit za
podtrzitka, prave jen v radku konkretniho tagu Name:
<Name>-a-r-ch-iv-e-ad-d2@@-@-</Name> 

Reseni by bylo mozne s podminkami "lookaround", ktere vymezuji nutny (nebo
zakazany) sousedni text vedle nalezu, ale nejsou do nalezu pocitany, jsou tak
mozne opakovane kroky hledani.
https://www.regular-expressions.info/lookaround.html

PSPad nyni lookarounds zrejme podporuje, jen s nekterymi omezenimi.

Jedna moznost by byl "lookbehind" -  pred hledanym znakem - se musi nachazet
<Name>a pripadne libovolne dalsi znaky:
(?<=<Name>.*)-

Zde PSPad hlasi chybu vyrazu pro vyhledavani - zrejme nepodporuje lookbehind s
promenlivou delkou .* ale jen pevny rozsah, coz nektere knihovny regex maji. To
je tedy zrejme ocekavane omezeni.


Nadejneji vypada "lookahead" na nasledujici zaviraci tag </Name>
-(?=.*</Name>)

Toto uz v pspadu pro vyhledavani funguje, opakovanym hledanim se nachazeji
rozdelovniky na radce pred </Name>, a ne v jinych radkach.

Bohuzel ale nefunguje nahrazeni - pri zadani podrtrzitka _ do nahrazovaciho
vyrazu a vyvolani nahrazeni se zobrazi spravne hlaseni - Hledany vyraz
"-(?=.*</Name>)" byl  nahrazen 9x
ale v textu zustanou beze zmeny puvodni rozdelovniky.
Pokud se zada rucni potvrzovani zmen, nalezy se postupne zvyraznuji, ale po
potvrzeni nahrady zustanou rozdelovniky.

Mozna zpusobuje problem nulova velikost zaberu "Zero-Length Assertions", ale
hledane spojovniky jsou zyraznovany spravne, jen nejsou nahrazeny.

(PSPad 5.0.6, 589; Win 7)

Zdravim a dekuju
vbr

-- 
<https://forum.pspad.com/read.php?4,75232,75232>
PSPad freeware editor https://www.pspad.com

Odpovedet emailem