正则表达式 匹配罗马数字 并且返回匹配到的值

博主分享了在处理需求中如何从字符串中匹配并提取罗马数字的经验,经过一番努力找到了有效的方法。提供了能将阿拉伯数字转为罗马数字的网站,并给出了匹配罗马数字的正则表达式,但需要注意可能匹配到空字符串的问题,需要后续程序处理。
摘要由CSDN通过智能技术生成

这两天楼主处理一个需求 要在很多字符串里面匹配出字符串中的罗马数字 还要取出这些罗马数字进行一系列的操作.在度娘上找了半天也没找到有用信息 还被很多错误的代码误导了 非常痛苦.好在最后各种努力 花了半天时间达到了想要的结果.现在在这里记录并分享一下.如果需要转载 请注明出处 写好传送门.thanks


这里分享一个网站 可以把阿拉伯数字转化为对应的罗马数字 没有上限 好用点赞加分享

http://www.zhongguosou.com/education_graduate_course_tools/roman_numeral_convert.aspx


以下方法就可以取到字符串中的罗马数字,但是也会匹配上空字符串,所以需要后期程序处理

/**
	 * 已经测试成功的取出正则表达式匹配的字符串         
         * @author erikas
         * @throws Exception
	 */
	@org.junit.Test
	public void testReg() throws Exception {
		String str = "";
		//匹配罗马数字的正则,但是由于每一个都可能是0个 空字符串也会被匹配出来 需要后期在程序里再处理
		String regex = "(-| +|^)M{0,9}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})( +|$)"; 
		Pattern p = Pattern.compile(regex);
		Matcher matcher = p.matcher(str);
		List&
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值