^0 صفر 1 یک 2 دو 3 سه 4 چهار 5 پنج 6 شش 7 هفت 8 هشت 9 نه 10 ده 11 یازده 12 دوازده 13 سیزده 14 چهارده 15 پانزده 16 شانزده 17 هفده 18 هجده 19 نوزده 2(\d) بیست[ و $1] 3(\d) سی[ و $1] 4(\d) چهل[ و $1] 5(\d) پنجاه[ و $1] 6(\d) شصت[ و $1] 7(\d) هفتاد[ و $1] 8(\d) هشتاد[ و $1] 9(\d) نود[ و $1] # separator function :0+ # one million :0*\d?\d " و " # one million and twenty-two :\d+ " و " # one million, one thousand 2(\d\d) دویست[ و $1] 3(\d\d) سیصد[ و $1] 5(\d\d) پانصد[ و $1] (\d)(\d\d) $1صد[ و $2] (\d{1,2})([1-9]\d\d) $1 هزار و[ $2] (\d{1,3})(\d{3}) $1 هزار$(:\2)$2 (\d{1,3})(\d{6}) $1 میلیون$(:\2)$2 (\d{1,3})(\d{9}) $1 میلیارد$(:\2)$2 (\d{1,3})(\d{12}) $1 تریلیون$(:\2)$2 (\d{1,3})(\d{15}) $1 کوادریلیون$(:\2)$2 (\d{1,3})(\d{18}) $1 کوینتیلیون$(:\2)$2 (\d{1,3})(\d{21}) $1 سکستیلیون$(:\2)$2 (\d{1,3})(\d{24}) $1 سپتیلیون$(:\2)$2 (\d{1,3})(\d{27}) $1 اکتیلیون$(:\2)$2 (\d{1,3})(\d{30}) $1 نانیلیون$(:\2)$2 (\d{1,3})(\d{33}) $1 دسیلیون$(:\2)$2 (\d{1,3})(\d{36}) $1 آندسیلیون$(:\2)$2 (\d{1,3})(\d{39}) $1 دیودسیلیون$(:\2)$2 (\d{1,3})(\d{42}) $1 تریدسیلیون$(:\2)$2 (\d{1,3})(\d{45}) $1 کواتیوردسیلیون$(:\2)$2 (\d{1,3})(\d{48}) $1 کویندسیلیون$(:\2)$2 (\d{1,3})(\d{51}) $1 سکسدسیلیون$(:\2)$2 (\d{1,3})(\d{54}) $1 سپتدسیلیون$(:\2)$2 (\d{1,3})(\d{57}) $1 اُکتودسیلیون$(:\2)$2 (\d{1,3})(\d{60}) $1 نومدسیلیون$(:\2)$2 (\d{1,3})(\d{63}) $1 ویجینتیلیون$(:\2)$2 (\d{1,3})(\d{66}) $1 آنویجینتیلیون$(:\2)$2 (\d{1,3})(\d{69}) $1 دویجینتیلیون$(:\2)$2 (\d{1,3})(\d{72}) $1 ترسویجینتیلیون$(:\2)$2 (\d{1,3})(\d{75}) $1 کوادرویجینتیلیون$(:\2)$2 (\d{1,3})(\d{78}) $1 کوینکاویجینتیلیون$(:\2)$2 (\d{1,3})(\d{81}) $1 سیسویجینتیلیون$(:\2)$2 (\d{1,3})(\d{84}) $1 سپتمویجینتیلیون$(:\2)$2 (\d{1,3})(\d{87}) $1 آکتوویجینتیلیون$(:\2)$2 (\d{1,3})(\d{90}) $1 نومویجینتیلیون$(:\2)$2 (\d{1,3})(\d{93}) $1 تریویجینتیلیون$(:\2)$2 (\d{1,3})(\d{96}) $1 آنتریویجینتیلیون$(:\2)$2 (\d{1,3})(\d{99}) $1 دوتریویجینتیلیون$(:\2)$2 (\d{1,3})(\d{100}) $1 گوگول$(:\2)$2 # negative number [-−](\d+) منفی |$1 # decimals 0[.,] ممیز ([-−]?\d+)[.,] $1| ممیز ([-−]?\d+[.,]\d*)(\d) $1| |$2 # currency # unit/subunit singular/plural us:([^,]*),([^,]*),([^,]*),([^,]*) \1 up:([^,]*),([^,]*),([^,]*),([^,]*) \2 ss:([^,]*),([^,]*),([^,]*),([^,]*) \3 sp:([^,]*),([^,]*),([^,]*),([^,]*) \4 ZMW:(\D+) $(\1: کواچای زامبیا, کواچای زامبیا, نگوی, نگوی) ZAR:(\D+) $(\1: رند آفریقای جنوبی, رند آفریقای جنوبی, سنت, سنت) YER:(\D+) $(\1: ریال یمن, ریال یمن, فلس, فلس) WST:(\D+) $(\1: طلای ساموآ, طلای ساموآ, سن, سن) VUV:(\D+) $(\1: واتوی وانواتو, واتوی وانواتو,,) VND:(\D+) $(\1: دانگ ویتنام, دانگ ویتنام, هائو, هائو) VES:(\D+) $(\1: بولیوار ونزوئلا, بولیوار ونزوئلا, سنتیمو, سنتیمو) UZS:(\D+) $(\1: سوم ازبکستان, سوم ازبکستان, تین, تین) UYU:(\D+) $(\1: پزوی اروگوئه, پزوی اروگوئه, سنتسیمو, سنتسیمو) USD:(\D+) $(\1: دلار آمریکا, دلار آمریکا, سنت, سنت) UGX:(\D+) $(\1: شیلینگ اوگاندا, شیلینگ اوگاندا,,) UAH:(\D+) $(\1: گریونا اوکراین, گریونا اوکراین, کوپک, کوپک) TZS:(\D+) $(\1: شیلینگ تانزانیا, شیلینگ تانزانیا, سنت, سنت) TWD:(\D+) $(\1: دلار جدید تایوان, دلار جدید تایوان, سنت, سنت) TTD:(\D+) $(\1: دلار ترینیداد و توباگو, دلار ترینیداد و توباگو, سنت, سنت) TRY:(\D+) $(\1: لیره ترک, لیره ترک, قرش, قرش) TOP:(\D+) $(\1: پاآنگای تونگا, پاآنگای تونگا, سنیتی, سنیتی) TND:(\D+) $(\1: دینار تونس, دینار تونس, میلیم, میلیم) TMT:(\D+) $(\1: منات ترکمنستان, منات ترکمنستان, تنگه, تنگه) TJS:(\D+) $(\1: سامانی تاجیکستان, سامانی تاجیکستان, درم, درم) THB:(\D+) $(\1: بات تایلند, بات تایلند, ساتانگ, ساتانگ) SYP:(\D+) $(\1: لیره سوریه, لیره سوریه, قرش, قرش) SSP:(\D+) $(\1: پوند سودان جنوبی, پوند سودان جنوبی, قرش, قرش) SRD:(\D+) $(\1: دلار سورینام, دلار سورینام, سنت, سنت) SOS:(\D+) $(\1: شیلینگ سومالی, شیلینگ سومالی, سنت, سنت) SLS:(\D+) $(\1: شیلینگ سومالی‌لند, شیلینگ سومالی‌لند, سنت, سنت) SLL:(\D+) $(\1: لئون سیرالئون, لئون سیرالئون, سنت, سنت) SGD:(\D+) $(\1: دلار سنگاپور, دلار سنگاپور, سنت, سنت) SEK:(\D+) $(\1: کرون سوئد, کرون سوئد, اوره, اوره) SDG:(\D+) $(\1: پوند سودان, پوند سودان, قرش, قرش) SCR:(\D+) $(\1: روپیه سیشل, روپیه سیشل, سنت, سنت) SBD:(\D+) $(\1: دلار جزایر سلیمان, دلار جزایر سلیمان, سنت, سنت) RWF:(\D+) $(\1: فرانک رواندا, فرانک رواندا, سانتیم, سانتیم) RUB:(\D+) $(\1: روبل روسیه, روبل روسیه, کوپک, کوپک) RSD:(\D+) $(\1: دینار صربستان, دینار صربستان, پارا, پارا) RON:(\D+) $(\1: لئوی رومانی, لئوی رومانی, بان, بان) PYG:(\D+) $(\1: گوارانی پاراگوئه, گوارانی پاراگوئه, سنتیمو, سنتیمو) PRB:(\D+) $(\1: روبل ترانسنیسترین, روبل ترانسنیسترین, کوپک, کوپک) PLN:(\D+) $(\1: زلوتی لهستان, زلوتی لهستان, گروش, گروش) PKR:(\D+) $(\1: روپیه پاکستان, روپیه پاکستان, پیسه, پیسه) PHP:(\D+) $(\1: پزو فیلیپین, پزو فیلیپین, سنتیمو, سنتیمو) PGK:(\D+) $(\1: کینای پاپوآ گینه نو, کینای پاپوآ گینه نو, تویا, تویا) PEN:(\D+) $(\1: سول پرو, سول پرو, سنتیمو, سنتیمو) NZD:(\D+) $(\1: دلار نیوزیلند, دلار نیوزیلند, سنت, سنت) NOK:(\D+) $(\1: کرون نروژ, کرون نروژ, اوره, اوره) NIO:(\D+) $(\1: کوردوبای نیکاراگوئه, کوردوبای نیکاراگوئه, سنتاوو, سنتاوو) NGN:(\D+) $(\1: نایرا نیجریه, نایرا نیجریه, کوبو, کوبو) MZN:(\D+) $(\1: متیکال موزامبیک, متیکال موزامبیک, سنتاوو, سنتاوو) MYR:(\D+) $(\1: رینگیت مالزی, رینگیت مالزی, سن, سن) MXN:(\D+) $(\1: پزو مکزیک, پزو مکزیک, سنتاوو, سنتاوو) MWK:(\D+) $(\1: کواچا مالاویا, کواچا مالاویا, تامبالا, تامبالا) MUR:(\D+) $(\1: روپیه موریس, روپیه موریس, سنت, سنت) MRU:(\D+) $(\1: اوقیه موریتانی, اوقیه موریتانی, خمس, خمس) MNT:(\D+) $(\1: توگروگ مغولستان, توگروگ مغولستان, مونگو, مونگو) MMK:(\D+) $(\1: کیات میانمار, کیات میانمار, پیا, پیا) MKD:(\D+) $(\1: دینار مقدونیه, دینار مقدونیه, دنی, دنی) MGA:(\D+) $(\1: آریاری ماداگاسکار, آریاری ماداگاسکار, ایراایمبیلانجا, ایراایمبیلانجا) MDL:(\D+) $(\1: لئوی مولداوی, لئوی مولداوی, بان, بان) LYD:(\D+) $(\1: دینار لیبی, دینار لیبی, درهم, درهم) LRD:(\D+) $(\1: دلار لیبریا, دلار لیبریا, سنت, سنت) LKR:(\D+) $(\1: روپیه سری‌لانکا, روپیه سری‌لانکا, سنت, سنت) LAK:(\D+) $(\1: کیپ لائوس, کیپ لائوس, ات, ات) KZT:(\D+) $(\1: تنگه قزاقستان, تنگه قزاقستان, تیین, تیین) KRW:(\D+) $(\1: وون کره جنوبی, وون کره جنوبی, جیون, جیون) KPW:(\D+) $(\1: وون کره شمالی, وون کره شمالی, چون, چون) KHR:(\D+) $(\1: ریال کامبوج, ریال کامبوج, سن, سن) KGS:(\D+) $(\1: سوم قرقیزستان, سوم قرقیزستان, تیین, تیین) KES:(\D+) $(\1: شیلینگ کنیا, شیلینگ کنیا, سنت, سنت) JPY:(\D+) $(\1: ین ژاپن, ین ژاپن, سن, سن) JMD:(\D+) $(\1: دلار جامائیکا, دلار جامائیکا, سنت, سنت) ISK:(\D+) $(\1: کرونای ایسلند, کرونای ایسلند, اوره, اوره) IRR:(\D+) $(\1: ریال ایران, ریال ایران, دینار, دینار) IQD:(\D+) $(\1: دینار عراق, دینار عراق, فلس, فلس) INR:(\D+) $(\1: روپیه هند, روپیه هند, پیسه, پیسه) ILS:(\D+) $(\1: شکل جدید اسرائیل, شکل جدید اسرائیل, آگوروت, آگوروت) IDR:(\D+) $(\1: روپیه اندونزی, روپیه اندونزی, سن, سن) HUF:(\D+) $(\1: فورینت مجارستان, فورینت مجارستان, فیلر, فیلر) HTG:(\D+) $(\1: گورد هائیتی, گورد هائیتی, سانتیم, سانتیم) HRK:(\D+) $(\1: کونای کرواسی, کونای کرواسی, لیپا, لیپا) HNL:(\D+) $(\1: لامپیرای هندوراس, لامپیرای هندوراس, سنتاوو, سنتاوو) GYD:(\D+) $(\1: دلار گویان, دلار گویان, سنت, سنت) GTQ:(\D+) $(\1: کوتزال گواتمالا, کوتزال گواتمالا, سنتاوو, سنتاوو) GNF:(\D+) $(\1: فرانک گینه, فرانک گینه, سانتیم, سانتیم) GMD:(\D+) $(\1: دالاسی گامبیا, دالاسی گامبیا, بوتوت, بوتوت) GHS:(\D+) $(\1: سدی غنا, سدی غنا, پسوا, پسوا) GEL:(\D+) $(\1: لاری گرجستان, لاری گرجستان, تتری, تتری) GBP:(\D+) $(\1: پوند استرلینگ, پوند استرلینگ, پنی, پنی) FJD:(\D+) $(\1: دلار فیجی, دلار فیجی, سنت, سنت) EUR:(\D+) $(\1: یورو, یورو, سنت, سنت) ETB:(\D+) $(\1: بیر اتیوپی, بیر اتیوپی, سانتیم, سانتیم) EGP:(\D+) $(\1: پوند مصر, پوند مصر, قرش, قرش) DZD:(\D+) $(\1: دینار الجزایر, دینار الجزایر, سانتیم, سانتیم) DOP:(\D+) $(\1: پزو دومینیکن, پزو دومینیکن, سنتاوو, سنتاوو) CZK:(\D+) $(\1: کرونای چک, کرونای چک, هالر, هالر) CUP:(\D+) $(\1: پزوی کوبا, پزوی کوبا, سنتاوو, سنتاوو) CRC:(\D+) $(\1: کولون کاستاریکا, کولون کاستاریکا, سنتیمو, سنتیمو) COP:(\D+) $(\1: پزو کلمبیا, پزو کلمبیا, سنتاوو, سنتاوو) CNY:(\D+) $(\1: رنمینبی, رنمینبی, جیائو, جیائو) CLP:(\D+) $(\1: پزو شیلی, پزو شیلی, سنتاوو, سنتاوو) CHF:(\D+) $(\1: فرانک سوئیس, فرانک سوئیس, سانتیم, سانتیم) CDF:(\D+) $(\1: فرانک کنگو, فرانک کنگو, سانتیم, سانتیم) CAD:(\D+) $(\1: دلار کانادا, دلار کانادا, سنت, سنت) BYN:(\D+) $(\1: روبل بلاروس, روبل بلاروس, کاپیکا, کاپیکا) BWP:(\D+) $(\1: پولای بوتسوانا, پولای بوتسوانا, تیب, تیب) BRL:(\D+) $(\1: رئال برزیل, رئال برزیل, سنتاوو, سنتاوو) BOB:(\D+) $(\1: بولیویانو بولیوی, بولیویانو بولیوی, سنتاوو, سنتاوو) BIF:(\D+) $(\1: فرانک بوروندی, فرانک بوروندی, سانتیم, سانتیم) BDT:(\D+) $(\1: تاکا بنگلادش, تاکا بنگلادش, پیسه, پیسه) AZN:(\D+) $(\1: منات آذربایجان, منات آذربایجان, گپیک, گپیک) AUD:(\D+) $(\1: دلار استرالیا, دلار استرالیا, سنت, سنت) ARS:(\D+) $(\1: پزو آرژانتین, پزو آرژانتین, سنتاوو, سنتاوو) AOA:(\D+) $(\1: کوانزای آنگولا, کوانزای آنگولا, سنتیمو, سنتیمو) AMD:(\D+) $(\1: درام ارمنستان, درام ارمنستان, لوما, لوما) ALL:(\D+) $(\1: لک آلبانی, لک آلبانی, کیندارکا, کیندارکا) AFN:(\D+) $(\1: افغانی افغانستان, افغانی افغانستان, پول, پول) "(JPY [-−]?\d+)[.,](\d\d)0" $1 "(JPY [-−]?\d+[.,]\d\d)(\d)" $1 $2 rin "([A-Z]{3}) ([-−]?1)([.,]00?)?" $2$(\1:us) "([A-Z]{3}) ([-−]?\d+)([.,]00?)?" $2$(\1:up) "(CNY [-−]?\d+)[.,](\d)0?" $1 $2 jiao "(CNY [-−]?\d+[.,]\d)(\d)" $1 $2 fen "((MGA|MRO) [-−]?\d+)[.,]0" $1 "((MGA|MRO) [-−]?\d+)[.,]2" $1 و |$(1)$(\2:ss) "((MGA|MRO) [-−]?\d+)[.,]4" $1 و |$(2)$(\2:sp) "((MGA|MRO) [-−]?\d+)[.,]6" $1 و |$(3)$(\2:sp) "((MGA|MRO) [-−]?\d+)[.,]8" $1 و |$(4)$(\2:sp) "(([A-Z]{3}) [-−]?\d+)[.,](01)" $1 و |$(1)$(\2:ss) "(([A-Z]{3}) [-−]?\d+)[.,](\d)" $1 و |$(\30)$(\2:sp) "(([A-Z]{3}) [-−]?\d+)[.,](\d\d)" $1 و |$3$(\2:sp) == money == "(JPY [-−]?\d+)[.,](\d\d)0" $1 "(JPY [-−]?\d+[.,]\d\d)(\d)" $1 $2 rin "([A-Z]{3}) ([-−]?1)([.,]00?)?" $2$(\1:us) "([A-Z]{3}) ([-−]?\d+)([.,]00?)?" $2$(\1:up) "(CNY [-−]?\d+)[.,](\d)0?" $1 $2 jiao "(CNY [-−]?\d+[.,]\d)(\d)" $1 $2 fen "(MGA|MRO) ([-−]?\d+)[.,]0" $2$(\1:us) "(MGA|MRO) ([-−]?\d+)[.,]2" $2 و 1/5$(\1:us) "(MGA|MRO) ([-−]?\d+)[.,]4" $2 و 2/5$(\1:up) "(MGA|MRO) ([-−]?\d+)[.,]6" $2 و 3/5$(\1:up) "(MGA|MRO) ([-−]?\d+)[.,]8" $2 و 4/5$(\1:up) "([A-Z]{3}) ([-−]?1)" $2$(\1:us) "([A-Z]{3}) ([-−]?\d+)" $2$(\1:up) "(([A-Z]{3}) ([-−]?\d+))[.,](01)" $3 و 1/100$(\2:us) "(([A-Z]{3}) ([-−]?\d+))[.,](\d)" $3 و \40/100$(\2:up) "(([A-Z]{3}) ([-−]?\d+))[.,](\d\d)" $3 و \4/100$(\2:up) "(([A-Z]{3}) ([-−]?\d+))[.,](\d\d\d)" $3 و \4/1000$(\2:up) == ordinal == # convert to text, and recall to convert # cardinal names to ordinal ones ([-−]?\d+) $(ordinal |$1) (.*)سه \1سومین (.*) \1مین == ordinal-number == (.*) \1مین == year == (.*) \1 == help == "" $(1)|, $(2), $(3)\n$(\0 ordinal)$(\0 ordinal-number)year: $(year 1999), two thousand, $(year 2001)\ncurrency \(for example, USD\): $(USD 2.5)\nmoney USD: $(money USD 2.5) "(ordinal(-number)?|USD)" \1: $(\1 1), $(\1 2), $(\1 3)\n