Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Regular expression Replace

[es] :: .NET :: Regular expression Replace

[ Pregleda: 477 | Odgovora: 2 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

negyxo
Aleksandar Perkuchin
unknown

Član broj: 29751
Poruke: 649
82.117.202.*



Profil

icon Regular expression Replace16.04.2008. u 10:33

Evo interesantan problem, ne znam dovoljno regex pa me interesuje da li je ovo izvodljivo preko regex-a.

Situacija je sledeca:

U zadatom stringu imam odredjene stringove koji predstavljaju neku vrstu promenljivih koje program kasnije treba da zameni. Da bi promenljivu prepoznali uveli smo rezervisani/meta karakter. U nasem slucaju to j e $ (dolar).

prim.

Code:

string s = "There can be only $one";


U ovom slucaju regex bi trebao da matchuje $one i da zameni sa nekom vrednosti. Naravno ovo nije problem, nego problem nastaje kada postoji vise $ znakova.

prim.

Code:

string s = "There can be only $$one or $two";


U ovom slucaju bi trebalo samo $two da se match-uje i zameni. Znaci trebalo bi nekako reci regex-u da gleda sva poklapanja koja imaju nesto kao \$[\w]+ ali da prethodni znak pre match-a ne pocnije sa $. Problem je sto ako bi napisao nesto kao [^\$]\$[\w]+, onda ce se dobiti dobar match (sem ako je $nesto na samom pocetku stringa) ali nece se dobro zameniti.





Only Time Will Tell
16.04.2008. u 10:33 

mmix
Miljan Mitrovic
Software Architect
Pancevo, Srbija

SuperModerator
Član broj: 17944
Poruke: 1942
195.252.78.*

Sajt: blog.mitrovic.rs


Profil

icon Re: Regular expression Replace16.04.2008. u 10:58
Treba ti nesto szto se zove: Zero-width negative lookbehind assertion (?<!expression)



Znaci regex koji trazis je

(?<!\$)\$\w+

▪ "Why isn't my wireless mouse connected to the computer?" - 2008 Dumbest Technical Support Question
▪ The word 'politics' is derived from the word 'poly', meaning 'many', and the word 'ticks', meaning 'blood sucking parasites' - Hardiman
▪ If the good guy gets the girl, it's rated PG; if the bad guy gets the girl, it's rated R; and if everybody gets the girl, it's rated X



16.04.2008. u 10:58 

negyxo
Aleksandar Perkuchin
unknown

Član broj: 29751
Poruke: 649
...vl-edge-dnevnik.neobee.net.



Profil

icon Re: Regular expression Replace16.04.2008. u 11:07
Svaka cast, to je to. Mislim da "lookbehind" dovoljno govori.

Hvala.
Only Time Will Tell
16.04.2008. u 11:07 

[es] :: .NET :: Regular expression Replace

[ Pregleda: 477 | Odgovora: 2 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.