Ahoj, potreboval by som z parametra Objem, vytiahnut len cislo a pomocou pravidla najst a nahradit, povodnu hodnotu v parametri nahradit za cislo a pridat " l " (litre)
skusil som nieco taketo ale pravidlo neprechadza + potrebujem pridat tie litre
Potreboval by som pomoc, dakujem
2 Likes
To by chtělo ještě uvést příklad, jak hodnota v tom parametru objem vypadá (tj. z jakého textu se má vytáhnout jen číslo), protože bez toho nejde poradit.
napriklad takto vyzera hodnota v parametri objem : Futura 26. Skusal som takyto zapis
avsak nerozumiem preco mi nevezme do skupiny s cislom pod zapisom \d+ aj to cislo “2”, skusal som aj pomocou \d{1,2} a ine zapisy ale nic nefunguje. Nerozumie ako je mozne ze to cislo 2 vzdy spadne pod zapis (^.*). Nemalo by to dvohciferne 25 cislo byt uz samostatna skupina pod zapisom \d+?
ked pouzijem takyto zapis (^.\s)(\d+)(.$), takt to funguje problem je ze medzi textom Futura a cislo 26 nemusi byt vzdy aj medzera. Moze to byt aj Futura26, a to sa mi nedari osetrit
1 Like
Protože regulární výrazy se přirozeně snaží obsáhnout co nejvíce znaků mohou, jsou tzv. greedy (nenasytné, hladové) a tak regulární výraz .*
zasáhne až do toho prvního čísla (snaží se zachytit co nejvíc znaků může) a pro následný výraz \d+
zbude už jen ta druhá číslice, což stále splní zadání, co má regulární výraz najít.
Vyzkoušejte v MERGADU → v pravidle Najít a nahradit tohle:
- do pole Najít zadejte regulární výraz:
(.*?)(\d+)(.*)
- do pole Nahradit zadejte:
\2 l
Což by mělo fungovat přesně, jak potřebujete. Ukázka zde: https://regex101.com/r/zSMHfE/1 + screen:
Na závěr přidávám tip na jednu novinku týkající se regulárních výrazů:
Mrkněte se na náš zbrusu nový e-book plný příkladů a vysvětlení regulárních výrazů, stáhnout si jej můžete zdarma a najdete tam z výše uvedeného příkladu:
- jak lze zkrotit přirozenou rozpínavost regulárních výrazů
- jak použít zpětnou referenci
- a mnoho dalších ukázek v konkrétních příkladech.
2 Likes
Dostudujem, dakujem za vysvetlenie. Funguje tak ako som chcel.
2 Likes