^0 нуль 1 один 2 два 3 три 4 чотири 5$ п’ять 5 п’ят 6$ шість 6 шіст 7 сім 8 вісім 9$ дев’ять 9 дев’ят 10 десять 11 одинадцять 12 дванадцять 13 тринадцять 14 чотирнадцять 15 п’ятнадцать 16 шістнадцять 17 сімнадцять 18 вісімнадцять 19 дев’ятнадцять ([23])(\d) $1|дцять[ $2] 4(\d) сорок[ $1] 9(\d) дев’яносто[ $1] (\d)(\d) $1десят[ $2] 1(\d\d) сто[ $1] 2(\d\d) двісті[ $1] ([34])(\d\d) $1ста[ $2] (\d)(\d\d) $1сот[ $2] (1|\d?[02-9]1)(\d{3}) $(f:$1) тисяча[ $2] ([234]|\d?[02-9][234])(\d{3}) $(f:$1) тисячі[ $2] (\d{1,3})(\d{3}) $1| тисяч[ $2] (1|\d?[02-9]1)(\d{6}) $1 мільйон[ $2] ([234]|\d?[02-9][234])(\d{6}) $1 мільйона[ $2] (\d{1,3})(\d{6}) $1 мільйонов[ $2] (1|\d?[02-9]1)(\d{9}) $1 мільярд[ $2] ([234]|\d?[02-9][234])(\d{9}) $1 мільярда[ $2] (\d{1,3})(\d{9}) $1 мільярдов[ $2] (1|\d?[02-9]1)(\d{12}) $1 трильйон[ $2] ([234]|\d?[02-9][234])(\d{12}) $1 трильйона[ $2] (\d{1,3})(\d{12}) $1 трильйонов[ $2] (1|\d?[02-9]1)(\d{15}) $1 квадрильйон[ $2] ([234]|\d?[02-9][234])(\d{15}) $1 квадрильйона[ $2] (\d{1,3})(\d{15}) $1 квадрильйонов[ $2] (1|\d?[02-9]1)(\d{18}) $1 квінтильйон[ $2] ([234]|\d?[02-9][234])(\d{18}) $1 квінтильйона[ $2] (\d{1,3})(\d{18}) $1 квінтильйонов[ $2] (1|\d?[02-9]1)(\d{21}) $1 секстильйон[ $2] ([234]|\d?[02-9][234])(\d{21}) $1 секстильйона[ $2] (\d{1,3})(\d{21}) $1 секстильйонов[ $2] (1|\d?[02-9]1)(\d{24}) $1 септильйон[ $2] ([234]|\d?[02-9][234])(\d{24}) $1 септильйона[ $2] (\d{1,3})(\d{24}) $1 септильйонов[ $2] # negative numbers [-−]1 мінус один [-−](\d+) мінус |$1 # decimals "([-−]?)[.,](\d+)" $(\10.\2) "[-−]1[.,]" мінус одна ціла "([-−]?\d+[02-9]1|1)[.,]" $(f:|$1) ціла "([-−]?\d+)[.,]" $(f:|$1) цілий "([-−]?\d+[.,])1" $1| и одна десята "([-−]?\d+[.,])(\d)" $1| и $(f:|$2) десятий "([-−]?\d+[.,])([02-9]1)" $1| и $(f:|$2) сота "([-−]?\d+[.,])(\d\d)" $1| и $(f:|$2) сотий "([-−]?\d+[.,])(\d[02-9]1)" $1| и $(f:|$2) тисячна "([-−]?\d+[.,])(\d{3})" $1| и $(f:|$2) тисячний "([-−]?\d+[.,])(\d)(\d)(\d)(\d)" $1| |$2 |$3 |$4 |$5 "([-−]?\d+[.,]\d*)(\d)" $1| |$2 # female conversion f:(.*)один \1одна f:(.*)два \1дві f:(.*) \1 # possessive (1-999) - used in ordinals "pos:(.* )?од(ин|на) ?" [$(pos:\1)]одного "pos:(.* )?дв[аі] ?" [$(pos:\1)]двох "pos:(.* )?три ?" [$(pos:\1)]трьох "pos:(.* )?чотири ?" [$(pos:\1)]чотирьох "pos:(.* )?вісім ?" [$(pos:\1)]восьми "pos:(.* )?([а-я]+)ь ?" [$(pos:\1)]\2и "pos:(.* )?сорок ?" [$(pos:\1)]сорока "pos:(.* )?([а-я]+)десят ?" [$(pos:\1)]\2десяти "pos:(.* )?([а-я]*)сто ?" [$(pos:\1)]\2сто "pos:(.*)двести ?" \1двохсот "pos:(.*)иста ?" \1ьохсот "pos:(.*)осемьсот ?" \1осьмисот "pos:(.*[^и])сот ?" \1исот pos:(.*) \1 # currency # unit/subunit us:([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) \1 up:([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) \2 ug:([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) \3 ss:([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) \4 sp:([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) \5 sg:([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) \6 EUR:(\D+) $(\1: євро, євро, євро, цент, цента, центів) GBP:(\D+) $(\1: фунт стерлінгів, фунта стерлінгів, фунтів стерлінгів, пенні, пенса, пенсів) RUB:(\D+) $(\1: рубль, рубля, рублів, копійка, копійки, копійок) UAH:(\D+) $(\1: гривня, гривні, гривень, копійка, копійки, копійок) USD:(\D+) $(\1: долар США, долара США, доларів США, цент, цента, центів) "(UAH) ([-−]?1)([.,]00?)?" $(f:$2)|$(\1:us) "(UAH) ([-−]?\d*[02-9]1)([.,]00?)?" $(f:$2)|$(\1:us) "(UAH) ([-−]?[234])([.,]00?)?" $(f:$2)|$(\1:up) "(UAH) ([-−]?\d*[02-9][234])([.,]00?)?" $(f:$2)|$(\1:up) "(UAH) ([-−]?\d+)([.,]00?)?" $(f:$2)|$(\1:ug) "([A-Z]{3}) ([-−]?1)([.,]00?)?" $2|$(\1:us) "([A-Z]{3}) ([-−]?\d*[02-9]1)([.,]00?)?" $2|$(\1:us) "([A-Z]{3}) ([-−]?[234])([.,]00?)?" $2|$(\1:up) "([A-Z]{3}) ([-−]?\d*[02-9][234])([.,]00?)?" $2|$(\1:up) "([A-Z]{3}) ([-−]?\d+)([.,]00?)?" $2|$(\1:ug) "((RUB) [-−]?\d+)[.,]([02-9])1" $1 [$(\30) ]одна$(\2:ss) "((RUB) [-−]?\d+)[.,]([02-9])2" $1 [$(\30) ]двi$(\2:sp) "((UAH) [-−]?\d+)[.,]([02-9])1" $1 [$(\30) ]одна$(\2:ss) "((UAH) [-−]?\d+)[.,]([02-9])2" $1 [$(\30) ]двi$(\2:sp) "(([A-Z]{3}) [-−]?\d+)[.,](01)" $1 |$(1)$(\2:ss) "((EUR|GBP|USD) [-−]?\d+)[.,]([02-9]2)" $1 $3|$(\2:sp) "(([A-Z]{3}) [-−]?\d+)[.,]([02-9][234])" $1 |$3$(\2:sp) "(([A-Z]{3}) [-−]?\d+)[.,](\d)" $1 |$(\30)$(\2:sg) "(([A-Z]{3}) [-−]?\d+)[.,](\d\d)" $1 |$3$(\2:sg) == ordinal-feminine == 0 нульова ([-−]?\d+) $(ordinal-feminine |$1) (.*)один \1перша (.*)два \1друга (.*)три \1третя (.*)чотири \1четверта (.*)шість \1шоста (.*)ть \1та (.*)вісім \1восьма (.*)сім \1сьома (.*)к \1кова (.*)осто \1оста (.*)сто \1сота (.*)двісті \1двохсота (.*)иста \1ьохсота (.*)шістсот \2шестисота (.*)вісімсот \1восьмисота (.*)сімсот \2семисота (.*)сот \1исота "одна тисяча" тисячна "(.* )тисяч[аі]?" $(pos:\1)тисячна "один (\w+ль\w+)" \1на "(.* )([а-я]+ль[а-я]+)(а|ов)" $(pos:\1)\2на "(.* )([а-я]+ль[а-я]+)" $(pos:\1)\2на (.*) \1а == ordinal-neuter == ([-−]?\d+) $(ordinal-neuter |$(ordinal-feminine \1)) (.*)а \1е (.*)я \1є (.*) \1 == ordinal(-masculine)? == ([-−]?\d+) $(ordinal-masculine |$(ordinal-feminine \2)) (.*)а \2ий (.*)я \2ій (.*) \2 == ordinal-number-feminine == (\d+) \1-$(ordinal-number-neuter |$(ordinal-feminine \1)) == ordinal-number-neuter == (\d+) \1-$(ordinal-number-neuter |$(ordinal-neuter \1)) # use last two letters to get a consonant .*(..) \1 == ordinal-number(-masculine)? == (\d+) \2-й == help == "" |$(1)|, |$(2)|, |$(3)|\n$(help ordinal-feminine)$(help ordinal-masculine)$(help ordinal-neuter)$(help ordinal-number-feminine)$(help ordinal-number-masculine)$(help ordinal-number-neuter) (.*) \1: |$(\1 1)|, |$(\1 2)|, |$(\1 3)|\n