|
|
^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
|