Poradte prosim s regularnim vyrazem (v PSPadu)
Ahoj,
mam textovy soubor, ktery upravuji pro import do Accessu. Jsou v nem udaje typu cislo+mezera, tzn. napr. "383.4 ". Potreboval bych odstranit mezery za temito cisly. Zkousel jsem vyraz "([0-9] )", ktery najde potrebne cisla, ale oznaci jak mezeru, tak cislici. Pro "nahradit" vsak potrebuju, aby oznacil pouze mezeru.
Diky za pomoc.
M.
Nestačilo by použít jen klasickou funkci Nahradit (Ctrl+H)? Najít:" " Nahradit: ""
Ale záleží, jaká je struktura toho souboru, jestli tam nejsou i nějaké mezery, které chceš zachovat.
To jsem pardon zapomnel zminit, ze tam jsou i vyrazy typu slovo+mezera: "abc " a zdvojena mezera: " ", ktere bych potreboval zachovat.
Nakonec jsem pouzil nahradu takto:
vyhledat: "([0-9]) ([0-9])"
nahradit: "$1$2"
M.
//edit: ...a vlastne timto dekuji panu Janu Fialovi za "objeveni" kouzla regularnich vyrazu, bo je to vskutku uzitecny nastroj, o kterem jsem sice vedel, ale nepouzival
\d+\s\d+ nahradit \d+\d+
Hm, mozna to delam blbe, ale takto podle mne nejde odkazovat (v nahradit)...
...Ha! Jsi to behem meho psani upravil!...
... na sekvence znaku, ktere byly nalezeny...?
M.
Pokud chces nmahrazovat, musi byt hledany vyraz uzavren do kulatych zavorek. Je to dostatecne popsano v prikladech v helpu PSPaduTakze v tomto pripade by to bylo:
hledat: (\d+)\s(\d+)
nahradit: $1$2
Dekuju.M.
ano, špatně jsem to pochopil a až posléze mi "docvaklo"
to, co jsem zapsal, byl obecný formát regexpu, jak se standardně používá např. v sed-u nebo TC. Existuje několik "verzí" zápisu regulárních výrazů.
P.S.: strašně se mi líbí "brutalita" regulárních výrazů