» »

[C#] Regex - samo decimalne vrednosti

[C#] Regex - samo decimalne vrednosti

FuI2cY ::

Pozdravljeni,

mene zanima kako bi lahko dobil iz stringa samo decimalne vrednosti.

primer: "nekaj123 posebej 345 dobro fain 0.25 konec kasneje 2.59"

da bi iz tega stringa dobil samo 0.25 in 2.59, brez 123 in 345 ?

S tem regexom @"[^0-9\.]+" sem še nekak najbližje prišel, vendar mi kljub temu 123 in 345 zraven zazna.

P.s. vedno je pika pri decimalnih vrednosti, ni vejic

hvala

FuI2cY ::

Ne vem kako je uspelo, da je 2x objavilo. Se opravičujem za dva enaka posta. enega se lahko odstrani

black ice ::

urli ::

V php (verjetno v C# enako ali zelo podobno)

/(\d+\.\d+)/


ali (\d je pač okrajšava za [0-9])

/([0-9]+\.[0-9]+)/

Zgodovina sprememb…

  • spremenil: urli ()

FuI2cY ::

Pozdrav, imam še eno vprašanje.

želim, da mi replace zamenja samo točno isto vrednost v stringu.

Primer:

vrednost 3.00 želim spremeniti v $3

string line = "neki text 133.00 ima dodatno vrednost 3.00 itd"

string.Replace je v tem primeru neuporaben, ker mi bo obe vrednsoti zamenjal in bom imel na koncu

line = "neki text 13$3 ima dodatno vrednost $3 itd"

z regexi pa nisem glih najbolj usklajen, zato vas prosim za pomoč. Sem poizkusil tudi z @"\b{0}\b", value in ne deluje.

So pa vedno decimalne vrednosti s piko. nič drugega, noben text.

Hvala.

Sem poskusil tudi z regexom @"\b\w*{0}\w*\b", deluje ampak ne najbolje. Če pride do vrednosti npr 0.72, mi naredi 0.72.72

FuI2cY je izjavil:

Pozdrav, imam še eno vprašanje.

želim, da mi replace zamenja samo točno isto vrednost v stringu.

Primer:

vrednost 3.00 želim spremeniti v $3

string line = "neki text 133.00 ima dodatno vrednost 3.00 itd"

string.Replace je v tem primeru neuporaben, ker mi bo obe vrednsoti zamenjal in bom imel na koncu

line = "neki text 13$3 ima dodatno vrednost $3 itd"

z regexi pa nisem glih najbolj usklajen, zato vas prosim za pomoč. Sem poizkusil tudi z @"\b{0}\b", value in ne deluje.

So pa vedno decimalne vrednosti s piko. nič drugega, noben text.

Hvala.

Sem poskusil tudi z regexom @"\b\w*{0}\w*\b", deluje ampak ne najbolje. Če pride do vrednosti npr 0.72, mi naredi 0.72.72

Zgodovina sprememb…

  • spremenil: FuI2cY ()

FrEaKmAn ::

Kako se vrednosti 133.00 and 3.00 razlikujeta? V številu celih števil? Ker lahko enostavno matchaš številko, ki imamo samo eno celo število z

\b(\d\.\d+)\b


torej to bo matchalo 3.00, 4.00, 5.12356 vendar NE 33.00. Primer https://regex101.com/r/vZ3pM8/1

Je to to? Ali želiš nekaj drugega?

Zgodovina sprememb…

  • spremenil: FrEaKmAn ()

FuI2cY ::

jaz bi rad, da išče strikno to cifro (whole word)

torej če iščem npr. 3.00, more najdit strikno samo 3.00, ne znotraj 13.00 ali 133.00 itd., če iščem 133.00, potem išče samo za 133.00, ne npr 1133.00

FrEaKmAn ::

če hočeš samo 3.00, potem

(\b3\.00\b)


https://regex101.com/r/dH3oH2/2

FuI2cY ::

ne samo 3.00, karkoli je lahko. To sem samo kot primer dal.

vrednost je lahko 239.91 (vedno na dve decimalki), 1.09, 0.29 ... torej vrednost se spreminja in obvezno k išče in potem replace-a v stringu, more whole word upoštevat. Torej če je vrednost, 1.09 potrebno zamenjati z 2.99, potem more samo vrednost 1.09 zamenjati, ne npr. 11.09 (isto vsebuje 1.09, tega ne sme)

FrEaKmAn ::

če je lahko karkoli, potem pa (.*)



Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

C# Regex.Replace()

Oddelek: Programiranje
6949 (868) D-monLord
»

HttpWebResponse CharacterSet

Oddelek: Programiranje
91010 (881) Senzacionale
»

c# regularni izraz

Oddelek: Programiranje
202015 (1713) darkolord
»

regex

Oddelek: Programiranje
101188 (932) l0g1t3ch
»

[php]: preprost problem in preg_replace()

Oddelek: Izdelava spletišč
61134 (1072) R33D3M33R

Več podobnih tem