使用正则表达式匹配罗马数字

使用正则表达式匹配罗马数字

分类: 代码优化 阅读量:

罗马数字是欧洲在阿拉伯数字传入之前使用的一种数码,现在应用较少。它的产生晚于中国甲骨文中的数码,更晚于埃及人的十进制数字。

使用正则表达式匹配罗马数字

罗马数字是阿拉伯数字传入之前使用的一种数码。其采用七个罗马字母作数字、即I(1)、X(10)、C(100)、M(1000)、V(5)、L(50)、D(500)。罗马数字的记数方法是:相同的数字连写,所表示的数等于这些数字相加得到的数;小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数;小的数字在大的数字的左边,所表示的数等于大数减小数得到的数。

在程序设计的时候,有时候会出现使用正则表达式匹配罗马数字的问题,这里给一下解决方案:

未经验证的罗马数字:

^[MDCLXVI]+$

严格验证罗马数字:

^(?=[MDCLXVI])M*(C[MD]|D?C{0,3})(X[CL]|L?X{0,3})(I[XV]|V?I{ 0,3})$

灵活验证罗马数字:

^(?=[MDCLXVI])M*(C[MD]|D?C*)(X[CL]|L?X*)(I[XV]|V?I*)$

简单的罗马数字:

^(?=[MDCLXVI])M*D?C{0,4}L?X{0,4}V?I{0,4}$

以上正则表达式适用的编程语言: .NET、Java、JavaScript、PCRE、Perl、Python、Ruby

逆赢网络简介

逆赢网络简介

网站建设、外贸建站、独立自建站、推广外包托管、SEO优化、小程序开发、信息流广告优化。

逆赢网络是从业12年的网络营销服务商,为公司和跨境电商外贸企业提供:二次开发定制建站、外贸建站、自建站、独立站建站、小程序开发等网站建设开发服务;以及SEO优化(网站优化)、百度推广外包托管、谷歌广告外包托管、网络营销咨询、信息流广告优化等网站推广代运营服务。