You are here: PSPad forum > České diskuzní fórum > Jak zaměnit $w[???] za $w(???) ?

Jak zaměnit $w[???] za $w(???) ?

#1 Jak zaměnit $w[???] za $w(???) ?

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.

Options: Reply | Quote | Up ^


#2 Re: Jak zaměnit $w[???] za $w(???) ?

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

Options: Reply | Quote | Up ^


#3 Re: zaměnit nalezený výskyt

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.

Options: Reply | Quote | Up ^


#4 Re: zaměnit nalezený výskyt

Posted by: pspad | Date: 2013-12-22 16:43 | IP: IP Logged

Hledat: (^.*)\$w\[(\d+)\](.*)
Nahradit: $1$2$3
[x]Regularni vyrazy

Options: Reply | Quote | Up ^


#5 Re: zaměnit nalezený výskyt

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.

Options: Reply | Quote | Up ^


#6 Re: zaměnit nalezený výskyt

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

Options: Reply | Quote | Up ^


#7 Re: zaměnit nalezený výskyt

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.

Options: Reply | Quote | Up ^


#8 Re: zaměnit nalezený výskyt

Posted by: 4ever | Date: 2013-12-23 10:21 | IP: IP Logged

Zdá se že funguje
winking smiley

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.

Options: Reply | Quote | Up ^






Editor PSPad - freeware editor, © 2001 - 2021 Jan Fiala, Hosted by Webhosting TOJEONO.CZ, design by WebDesign PAY & SOFT, code Petr Dvořák, Privacy policy and GDPR