Autor | Zpráva | ||
---|---|---|---|
Adam1999 Profil |
#1 · Zasláno: 5. 12. 2019, 11:23:22
Mám text "nápoj výborný 5L" a text "nápoj výborný 1L novinka". Potřeboval bych z toho dostat "nápoj výborný" a číslo, které je za L.
Vím, že bych měl asi použít Regex ale nevím jak jej napsat? |
||
RastyAmateur Profil |
#2 · Zasláno: 5. 12. 2019, 12:07:54
Adam1999:
Třeba takto |
||
lionel messi Profil |
RastyAmateur:
> Adam1999: > Třeba takto Nechytí viacciferné ani desatinné číslo (nezáleží na tom, či s bodkou, alebo čiarkou) a ja si napríklad kupujem minerálku vo fľašiach s objemom 0,5 či 0,7 litra. :-) ^([^0-9]+)\s(\d+(?:,|\.)?.*)?L V \1 bude názov nápoja, v \2 objem. Pozor: Ak je súčasťou názvu číslo (napr. Limonáda 7UP 0,5L), nespráva sa spätná referencia podľa očakávania, doriešim neskôr, musím odísť od PC. |
||
Adam1999 Profil |
#4 · Zasláno: 5. 12. 2019, 12:47:49
lionel messi:
Jj to je přesně ono. Dalo by se ještě dořešit aby šla vypsat i ta jednotka. Může to být třeba "Nápoj 5L" nebo "nápoj 500ML". |
||
lionel messi Profil |
Finálna verzia
^(.+)\s(\d+(?:,|\.)?\d*)?((?:C|D|H|M)?L) V \1 je názov nápoja (už chytí aj Limonáda 7UP), v \2 objem, v \3 jednotka objemu (centi-, deci-, hekto-, mililiter alebo prostý liter). Nezáleží na tom, či bude objem 0,5L alebo 0.5L, chytí oba varianty. |
||
RastyAmateur Profil |
#6 · Zasláno: 5. 12. 2019, 14:37:15
lionel messi:
Chápu a uvědomuji si, jen jsem chtěl, aby se nad tím tazatel pak také trochu zamyslel a zkusil to doupravit do dokonalosti... Jinak poslední, co bych ti tam doplnil je ^(?P<drink_name>.+)\s(\d...... , a podobně, protože za měsíc už nebude vědět, co je v \1 a co v \3
|
||
Adam1999 Profil |
#7 · Zasláno: 5. 12. 2019, 17:05:04
lionel messi, RastyAmateur:
Chlapi díky moc! Dotáhl jsem to k obrazu svému takto: ^(?P<nazev>.+)\s(?P<obsah>\d+(?:,|\.)?\d*)?(?P<jednotka>(?:[C,c]|[D,d]|[H,h]|[M,m])?[L,l]) |
||
lionel messi Profil |
#8 · Zasláno: 5. 12. 2019, 17:22:23
Adam1999:
> lionel messi, RastyAmateur: > Chlapi díky moc! Dotáhl jsem to k obrazu svému takto: Nie je za čo. Doplním, že dobrú službu by ti spravil aj modifikátor i za maskou (oddeľovačom), potom by si mohol odchytávanie jednotiek nechať v tej menej ukecanej forme, ako som ukázal ja (samozrejme, kľudne s pomenovanou skupinou). |
||
Časová prodleva: 4 roky
|
0