Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: kajka 08. 09. 2018, 18:22:16
-
Může mi někdo napsat regulární výraz, kterým vyberu hodnotu "19" z toho konkrétního řetězce - o089,v, 19| o098 ?
Dopracoval jsem se k '#o089([0-9]+)\|/#' což by teoreticky mělo být funkční, ale bohužel není.
-
Tvůj dotaz, tak jak je formulovaný, nedává smysl.
Pokud ho vezmu doslova, tak stačí regex výraz /19/ který v řetězci podřetězec "19" najde a vybere. ;D
(na testování doporučuju třeba https://regex101.com/ )
Ale to určitě nemá být cílem.
-
$result = preg_replace("#o089.* ([0-9]+)\|.*#", "$1", $str);
-
Co tak hodit vic prikladu, jestli tam je pattern tzn vzdy ,cislo| bez toho bude kazdy reseni hadani ...
-
Uvedená hodnota "19" se mění, zbytek zůstává ve stejném formátu. (Ta 19 je teplota) , a ano, vždy je tam cislo|.
Nakonec jsem se dostal k preg_match_all('/o089,v,(.*?)\|/s', $str, $matches); což mi funguje.
-
Těch možností je spousta, tvoje řešení ale vybírá nejen číslo (teplotu) ale i mezery před ním.
Já bych třeba raději použil "/o089,v, *(-?\d*)\|/s" - ořežu mezery a vezmu v úvahu možnou zápornou teplotu.
-
Díky agent. Právě s tou mezerou jsem měl poté další problémy :)