汉字数字(简写)一千以内正则表达式
2019-01-10 本文已影响0人
渊虹之百步飞剑
汉字数字基本字符:
像零、一、二、三十、一百八十、九百九十九等都是属于汉字数字,组成这些数据的汉字字符集为:
['零', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十']
本文的内容是关于一千以内(零-九百九十九)的汉字数字正则表达的匹配问题
数字分类
个位
数字:零、一、二、九...
正则表达式:^[零一二三四五六七八九十]\$
十位
数字: 十、十一、二十、三十五...
正则表达:
1. ^十[一二三四五六七八九]\$
2. ^[二三四五六七八九]十\$
3. ^[二三四五六七八九]十[一二三四五六七八九]\$
百位
数字:一百、一百零五、一百三十五...
正则表达式:
1. ^[一二三四五六七八九]百\$
2. ^[一二三四五六七八九]百零[一二三四五六七八九]\$
3. ^[一二三四五六七八九]百[一二三四五六七八九]十\$
4. ^[一二三四五六七八九]百[一二三四五六七八九]十[一二三四五六七八九]\$
结果
版本一
把上面各个正则通过|
拼起来就得到最终结果,最简单也最长
/^[零一二三四五六七八九十]$|^十[一二三四五六七八九]$|^[二三四五六七八九]十$|^[二三四五六七八九]十[一二三四五六七八九]$|^[一二三四五六七八九]百$|^[一二三四五六七八九]百零[一二三四五六七八九]$|^[一二三四五六七八九]百[一二三四五六七八九]十$|^[一二三四五六七八九]百[一二三四五六七八九]十[一二三四五六七八九]$/
版本二
^[零一二三四五六七八九十]$|^十[一二三四五六七八九]|[二三四五六七八九]十([一二三四五六七八九])?$|^[一二三四五六七八九]百(零[一二三四五六七八九]|[一二三四五六七八九]十([一二三四五六七八九])?)?$
版本x
水平有限,目前没有更好的结果了,后续有所进步再行更新