汉字数字(简写)一千以内正则表达式

2019-01-10  本文已影响0人  渊虹之百步飞剑

汉字数字基本字符:

像零、一、二、三十、一百八十、九百九十九等都是属于汉字数字,组成这些数据的汉字字符集为:['零', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十']
本文的内容是关于一千以内(零-九百九十九)的汉字数字正则表达的匹配问题

数字分类

个位

数字:零、一、二、九...
正则表达式:^[零一二三四五六七八九十]\$

十位

数字: 十、十一、二十、三十五...
正则表达:
  1. ^十[一二三四五六七八九]\$
  2. ^[二三四五六七八九]十\$
  3. ^[二三四五六七八九]十[一二三四五六七八九]\$

百位

数字:一百、一百零五、一百三十五...
正则表达式:
  1. ^[一二三四五六七八九]百\$
  2. ^[一二三四五六七八九]百零[一二三四五六七八九]\$
  3. ^[一二三四五六七八九]百[一二三四五六七八九]十\$
  4. ^[一二三四五六七八九]百[一二三四五六七八九]十[一二三四五六七八九]\$

结果

版本一

把上面各个正则通过|拼起来就得到最终结果,最简单也最长
/^[零一二三四五六七八九十]$|^十[一二三四五六七八九]$|^[二三四五六七八九]十$|^[二三四五六七八九]十[一二三四五六七八九]$|^[一二三四五六七八九]百$|^[一二三四五六七八九]百零[一二三四五六七八九]$|^[一二三四五六七八九]百[一二三四五六七八九]十$|^[一二三四五六七八九]百[一二三四五六七八九]十[一二三四五六七八九]$/

版本二

^[零一二三四五六七八九十]$|^十[一二三四五六七八九]|[二三四五六七八九]十([一二三四五六七八九])?$|^[一二三四五六七八九]百(零[一二三四五六七八九]|[一二三四五六七八九]十([一二三四五六七八九])?)?$

版本x

水平有限,目前没有更好的结果了,后续有所进步再行更新

上一篇下一篇

猜你喜欢

热点阅读