You are here: PSPad forum > České diskuzní fórum > Re: zaměnit nalezený výskyt
Posted by: 4ever | Date: 2013-12-22 14:19 | IP: IP Logged
Jak zaměnit všechny výskyty $w[???] za $l->get(???) . Místo ??? může být jakékoliv číslo (max 3 číslice). Jde to udělat ve verzi 4.5.4 a pokud možno přes Hledat/nahradit v souborech hromadně?
Nebo možná by stačil jen příkaz na odstranění všeho kromě čísel ve výrazu $w[???]
Edited 1 time(s). Last edit at 2013-12-22 14:38 by 4ever.
Posted by: pspad | Date: 2013-12-22 15:24 | IP: IP Logged
Šlo by to pomocí regularních výrazů, ale ne hromadně pro všechny soubory
Posted by: 4ever | Date: 2013-12-22 15:56 | IP: IP Logged
Tak poraď ten regulární výraz na záměnu v tom druhém případě. Nevím jak to funguje. Odstranit $w[ a ] z $w[???]
Příklad:
Původně:
$l->define('TOTAL_MESSAGES', $w[226]);
$l->define('NUM', $w[227]);
$l->define('FROM', $w[228]);
$l->define('SUBJECT', $w[168]);
$l->define('DATE', $w[229]);
$l->define('DEL', $w[230]);
Změnit na:
$l->define('TOTAL_MESSAGES', 226);
$l->define('NUM', 227);
$l->define('FROM', 228);
$l->define('SUBJECT', 168);
$l->define('DATE', 229);
$l->define('DEL', 230);
Edited 1 time(s). Last edit at 2013-12-22 16:00 by 4ever.
Posted by: pspad | Date: 2013-12-22 16:43 | IP: IP Logged
Hledat: (^.*)\$w\[(\d+)\](.*)
Nahradit: $1$2$3
[x]Regularni vyrazy
Posted by: 4ever | Date: 2013-12-22 18:26 | IP: IP Logged
Díky to mi ušetřilo spoustu práce,
naučil jsem se jak to používat
(^.*)\$w\[(\d+)\](.*)
$1\$lan->get($2)$3
Co ale vlastně znamená toto: \[(\d+)\]
Edited 1 time(s). Last edit at 2013-12-22 18:27 by 4ever.
Posted by: pspad | Date: 2013-12-22 19:10 | IP: IP Logged
4ever:Co ale vlastně znamená toto: \[(\d+)\]
zpetna lomitka jsou kvuli tomu, ze [, $, (, ], ) jsou ridici znaky, pouzivane v regularnich vyrazech, takze normalni escapovani.
v podstate chci najit: [nnnn]
takze hledam \[\d+\]
\d zahrnuje jakoukoliv cislici a zapis \d+ znamena 1 a vice cislic
do kulatych zavorek davam skupinu, kterou chci pak pouzit pri nahrazeni a poradi skupiny je pak urcena indexem, v tomto pripade $2
Posted by: 4ever | Date: 2013-12-23 10:17 | IP: IP Logged
Zkouším toto:
(^.*),\$w\[(\d{1,3})\]\)(.*)
$1,\$lan->get\($2\)$3
Pro nalezení
$address=ReturnRegisterValues('address',C_REGISTER_FIELDS1,'text',14,0,0,C_ADDRESSR,$w[377]);
a záměnu na
$address=ReturnRegisterValues('address',C_REGISTER_FIELDS1,'text',14,0,0,C_ADDRESSR,$lan->get(377));
Edited 2 time(s). Last edit at 2013-12-23 10:20 by 4ever.
Posted by: 4ever | Date: 2013-12-23 10:21 | IP: IP Logged
Zdá se že funguje
Ještě zkouším toto:
(^.*)(define\()(.*),\$w\[(\d{1,3})\]\)(.*)
$1\$lan->$2$3,$4)$5
hledám:
define('SEARCH_USERS_WITH',$w[143]);
nahrazuji:
$lan->define('SEARCH_USERS_WITH',143);
Edited 3 time(s). Last edit at 2013-12-23 10:46 by 4ever.
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