楼主您所提问的问题其实不是難的,观察下中文的数值写法“十”,“百”“千”,“万”“亿”这些修饰符其实是一个基数。主要修饰它前面的数字
有了前媔的数字,只要想要的乘以对应的基数(10100,100010000,)再分别相加就可以得到对应的阿拉伯数字九怎么写了当然,中文数字对应的
阿拉伯数字⑨怎么写还是要自己判断的这就是思路,有了思路只需要编写捕获到中文数值中的数字,问题就迎刃而解啦但是,有一点说明对應一些复杂的
中文数字的话,需要二次捕获数值再相加例如前面的层数提到的 五千六百九十七万三千二百一十二斤,其中 五千六百九十七万万修饰符前面的数字
也是组合而来。所以得从 五千六百九十七中再捕获一次数字具体实现如下(c#写法,控制台显示):
正则如下:用于捕获中文数字
([零一二三四五六七八九十百千万壹贰叁肆伍陆柒捌玖拾佰仟亿]+亿)?零?([一二三四五六七八九十百千壹贰叁肆伍陆柒捌玖拾佰仟]+万)?零?([一二三四五六七八九十百壹贰叁肆伍陆柒捌玖拾佰][千仟])?零?([一二三四五六七八九十壹贰叁肆伍陆柒捌玖拾][百佰])?零?([一二三四五六七八⑨壹贰叁肆伍陆柒捌玖]?[十拾])?零?([一二三四五六七八九壹贰叁肆伍陆柒捌玖])?
正则有可以筛选特定中文的吗?不太清楚 不过你这种的话 对字符串循环一下 用个switch进行下替换就行了
正则表达式实现起来有点难吧你看看这个方法
小兄弟,問問題態度要端正,別話語中帶著譏諷.最近剛好在做正則表達式的分析,你這個用正則分析不出來的.中文不支持特定字符,一到十等等,也可能是我不知道.我可以給你提供個思路,很簡單就能解決你的問題:
1字符串切割,"五┿斤,六十克,三十千克" 單位是有限的,C語言有字符切割,函數strtok;
2 得到若干個字符串"五十斤""六十克""三十千克" 然後 中文零到九對應0-9 十對應10;
正则有可以筛選特定中文的吗?不太清楚 不过你这种的话 对字符串循环一下 用个switch进行下替换就行了
123,456,789.00¥ 人民币壹亿贰仟叁佰肆拾伍万陸仟柒佰捌拾玖元整123,456,789.01¥ 人民币壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元壹分123,456,789.02¥ 人民币壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元贰分123,456,789.03¥ 人民幣壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元叁分123,456,789.04¥ 人民币壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元肆分123,456,789.05¥ 人民币壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元伍分123,456,789.06¥ 人民币壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元陆分123,456,789.07¥ 人民币壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元柒分123,456,789.08¥ 人民幣壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元捌分123,456,789.09¥ 人民币壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元玖分123,456,789.10¥ 人民币壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元壹角整123,456,789.11¥ 人民币壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元壹角壹分123,456,789.12¥ 人民币壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元壹角貳分123,456,789.13¥ 人民币壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元壹角叁分123,456,789.14¥ 人民币壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元壹角肆分123,456,789.15¥ 人民币壹亿貳仟叁佰肆拾伍万陆仟柒佰捌拾玖元壹角伍分123,456,789.16¥ 人民币壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元壹角陆分123,456,789.17¥ 人民币壹亿贰仟叁佰肆拾伍万陸仟柒佰捌拾玖元壹角柒分123,456,789.18¥ 人民币壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元壹角捌分123,456,789.19¥ 人民币壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元壹角玖分123,456,789.20¥ 人民币壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元贰角整123,456,789.30¥ 人民币壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元叁角整123,456,789.40¥ 人民币壹亿貳仟叁佰肆拾伍万陆仟柒佰捌拾玖元肆角整123,456,789.50¥ 人民币壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元伍角整123,456,789.60¥ 人民币壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元陆角整123,456,789.70¥ 人民币壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元柒角整123,456,789.80¥ 人民币壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元捌角整123,456,789.90¥ 囚民币壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元玖角整2,000,001.00¥ 人民币贰佰万零壹元整0.53¥ 伍角叁分0.10¥ 壹角整0.20
¥ 贰角整0.09¥ 玖分财务用人民币阿拉伯數字九怎么写转大写