如何优(dan)雅(teng)的用正则处理中文数字

2015-04-04 20:58:08 +08:00
 lingo233
google了半天也没找到(也可能是渣渣英给跪T_T

我把他们都转成unicode发现也不是连着的,除了把他们都输入进去还有什么办法吗?
2899 次点击
所在节点    程序员
16 条回复
leyle
2015-04-04 21:52:14 +08:00
硬编码?
leyle
2015-04-04 21:52:45 +08:00
@leyle 哦,看漏了楼主的“都输入进去”, sorry
lxrmido
2015-04-04 21:56:01 +08:00
嗯,枚举一下还是会比较优雅的
liuhaotian
2015-04-04 22:12:16 +08:00
建立一个10元素数组为何不优雅?
哦原来你要的是dan teng。。
lingo233
2015-04-04 22:20:14 +08:00
@liuhaotian 比如切换输入法的时候lol
tioover
2015-04-04 22:21:31 +08:00
废话 一二三的 Unicode 怎么可能连着嘛,你可以不输入字,输入 Unicode 码偏移量吧
lingo233
2015-04-04 22:26:38 +08:00
@tioover 我只是受到了0-9在ASIIC中的启发。T_T
kmvan
2015-04-04 22:35:02 +08:00
直接枚举,不久10个字么
lingo233
2015-04-04 22:41:58 +08:00
@kmvan 好吧(还有你们还忘了‘百千万’ :P
acgeo
2015-04-04 22:48:57 +08:00
为什么总是把问题复杂化

用点. 来匹配任意字符!

https://opencas.b0.upaiyun.com/uploads/images/2015/4/761a947894b.png
liuhaotian
2015-04-04 23:00:32 +08:00
@lingo233 既然你提到了这个,那么就不得不提:
一、十、百、千、万、亿、兆、京、垓、秭、穣、沟、涧、正、载、极、恒河沙、阿僧祇、那由他、不可思议、无量大数
分、厘、毛、糸、忽、微、纤、沙、尘、埃、渺、漠、模糊、逡巡、须臾、瞬息、弹指、刹那、六德、虚空、清净、阿赖耶、阿摩罗、涅槃寂静
cfan8
2015-04-04 23:04:53 +08:00
先在每个中文数字前添加一个加号,然后把十百千换成 *10 *100 *1000,最后把零-九换成0-9,最后eval一下
一万零八百
+一万+零+八百
+一*10000+零+八*100
+1*10000+0+8*100=10800
lingo233
2015-04-04 23:08:14 +08:00
@liuhaotian 喂喂这都是什么啊?!0.0原谅我语死早
除了前面几个后面也不常用啊@_@,还有一堆单位什么鬼。
话说不可思议2333
Yvette
2015-04-04 23:14:47 +08:00
@liuhaotian 头一次见到这些单位 2333333
lingo233
2015-04-04 23:19:15 +08:00
@acgeo 如果是字符夹在一大堆汉字中间那?
VirgilMing
2015-04-05 09:38:51 +08:00
@lingo233 \w 或者 [^a-zA-Z]

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/181595

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX