253 lines
8.2 KiB
Java
253 lines
8.2 KiB
Java
^0 ноль
|
||
1 один
|
||
2 два
|
||
3 три
|
||
4 четыре
|
||
5 пять
|
||
6 шесть
|
||
7 семь
|
||
8 восемь
|
||
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
|
||
|
||
# neuter conversion
|
||
n:(.*)один \1одно
|
||
n:(.*) \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)]восьмидесяти
|
||
"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) ]две$(\2:sp)
|
||
"((UAH) [-−]?\d+)[.,]([02-9])1" $1 [$(\30) ]одна$(\2:ss)
|
||
"((UAH) [-−]?\d+)[.,]([02-9])2" $1 [$(\30) ]две$(\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)
|
||
|
||
== cardinal-masculine? ==
|
||
|
||
(.*) $(\1)
|
||
|
||
== cardinal-feminine ==
|
||
|
||
(.*) $(f:$1)
|
||
|
||
== cardinal-neuter ==
|
||
|
||
(.*) $(n:$1)
|
||
|
||
== ordinal-feminine ==
|
||
|
||
0 нулевая
|
||
([-−]?\d+) $(ordinal-feminine |$1)
|
||
|
||
(.*)один \1первая
|
||
(.*)два \1вторая
|
||
(.*)три \1третья
|
||
(.*)ыре \1вёртая
|
||
(.*)осемь \1осьмая
|
||
(.*)мь \1дьмая
|
||
(.*)ь \1ая
|
||
(.*)к \1ковая
|
||
(.*)осемьдесят \1осьмидесятая
|
||
(.*)ьдесят \1идесятая
|
||
(.*)осто \1остая
|
||
(.*)сто \1сотая
|
||
(.*)вести \1вухсотая
|
||
(.*)[еи]ста \1ёхсотая
|
||
(.*)осемьсот \1осьмисотая
|
||
(.*)ьсот \1исотая
|
||
"одна тысяча" тысячная
|
||
"(.* )тысяч[аи]?" $(pos:\1)тысячная
|
||
"один (\w+илли\w+)" \1ная
|
||
"(.* )([а-я]+илли[а-я]+)(а|ов)" $(pos:\1)\2ная
|
||
"(.* )([а-я]+илли[а-я]+)" $(pos:\1)\2ная
|
||
(.*) \1ая
|
||
|
||
== ordinal-neuter ==
|
||
|
||
0 нулевое
|
||
([-−]?\d+) $(ordinal-neuter |$1)
|
||
|
||
(.*)один \1первое
|
||
(.*)два \1второе
|
||
(.*)три \1третье
|
||
(.*)ыре \1вёртое
|
||
(.*)осемь \1осьмое
|
||
(.*)мь \1дьмое
|
||
(.*)ь \1ое
|
||
(.*)к \1ковое
|
||
(.*)осемьдесят \1осьмидесятое
|
||
(.*)ьдесят \1идесятое
|
||
(.*)осто \1остое
|
||
(.*)сто \1сотое
|
||
(.*)вести \1вухсотое
|
||
(.*)[еи]ста \1ёхсотое
|
||
(.*)осемьсот \1осьмисотое
|
||
(.*)ьсот \1исотое
|
||
"одна тысяча" тысячное
|
||
"(.* )тысяч[аи]?" $(pos:\1)тысячное
|
||
"один ([а-я]+илли[а-я]+)" \1ное
|
||
"(.* )([а-я]+илли[а-я]+)(а|ов)" $(pos:\1)\2ное
|
||
"(.* )([а-я]+илли[а-я]+)" $(pos:\1)\2ное
|
||
(.*) \1ое
|
||
|
||
== ordinal(-masculine)? ==
|
||
|
||
0 нулевой
|
||
([-−]?\d+) $(ordinal |$2)
|
||
|
||
(.*)один \2первый
|
||
(.*)два \2второй
|
||
(.*)три \2третий
|
||
(.*)ыре \2вёртый
|
||
(.*)сть \2стой
|
||
(.*)осемь \2осьмой
|
||
(.*)мь \2дьмой
|
||
(.*)ь \2ый
|
||
(.*)к \2ковой
|
||
(.*)осемьдесят \2осьмидесятый
|
||
(.*)ьдесят \2идесятый
|
||
(.*)осто \2остый
|
||
(.*)сто \2сотый
|
||
(.*)вести \2вухсотый
|
||
(.*)[еи]ста \2ёхсотый
|
||
(.*)осемьсот \2осьмисотый
|
||
(.*)ьсот \2исотый
|
||
"одна тысяча" тысячный
|
||
"(.* )тысяч[аи]?" $(pos:\2)тысячный
|
||
"один ([а-я]+илли[а-я]+)" \2ный
|
||
"(.* )([а-я]+илли[а-я]+)(а|ов)" $(pos:\2)\3ный
|
||
"(.* )([а-я]+илли[а-я]+)" $(pos:\2)\3ный
|
||
(.*) \2ый
|
||
|
||
== ordinal-number-feminine ==
|
||
|
||
(\d+) \1-я
|
||
|
||
== ordinal-number-neuter ==
|
||
|
||
(\d+) \1-е
|
||
|
||
== ordinal-number(-masculine)? ==
|
||
|
||
(\d+) \2-й
|
||
|
||
== help ==
|
||
|
||
"" |$(1)|, |$(2)|, |$(3)|\n$(help cardinal-feminine)$(help cardinal-masculine)$(help cardinal-neuter)$(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
|