如何批量将文本中的中文数字替换为阿拉伯数字?
1
lalacat2i OP 抱歉,描述错误,应该是替换为阿拉伯数字。
|
2
zxCoder 2021-07-27 23:01:29 +08:00
数字的位数不会很多,都是有固定的书写格式的吧,感觉 if else 就可以
|
3
sunjiayao 2021-07-27 23:07:15 +08:00 1
正则应该可以搞定。但我不会正则
|
4
nuistzhou 2021-07-27 23:47:01 +08:00 via iPhone
针对每个长度的大写数字写正则好了
|
5
tinytoadd 2021-07-28 01:42:14 +08:00 via Android
|
6
TuYanzheng 2021-07-28 02:12:22 +08:00 via Android
@zxCoder 证明:一切数字都可以用不超过二十个汉字表示
反证:假设存在集合 A 表示不能用二十个以内汉字表示的数,则取最小的数 a,可以表示为“最小的不能用二十个以内汉字表示的数”,与集合描述相反 所以,一切数字都可以用二十个以内汉字表示。 |
7
LiYanHong 2021-07-28 08:54:06 +08:00
不会编程的话,总共就十个字,查找替换都比你提个问快
|
8
SevnChen 2021-07-28 09:06:37 +08:00
|
10
shakoon 2021-07-28 09:19:33 +08:00
楼主你说的这种字符是中文数字,不是中文大写数字。贰仟伍佰壹拾这种才是中文大写。
|
11
emonc 2021-07-28 09:19:48 +08:00
正则走两遍,先把单位去掉,再把汉字换成阿拉伯数字。应该就能解决大部分情况
|
12
l9rw 2021-07-28 09:49:05 +08:00 1
不会编程的话可以用 word 。
先 ctrl + H 打开替换窗口,点更多,勾选 [使用通配符] ,然后查找框里输入"第[零一二三四五六七八九十百千万]{1,10}条",不带引号,替换为里面留空,点最下面格式,随便选一个特殊格式。 选中自定义格式的 [第一条] ,点开始->选择->选择格式相似的文本,选中以后点开始->定义新编号格式->确定就好了 |
13
Maboroshii 2021-07-28 09:56:33 +08:00 1
要不反向思维试一下?
先做一个把阿拉伯数字翻译成汉字的方法,1001 -> 一千零一 , 这个应该好实现吧? 然后提前把 0 ~ 9999999 全部翻译好,最后反查替换。 |
14
zjj19950716 2021-07-28 10:20:03 +08:00
|
15
lalacat2i OP |
16
MiketsuSmasher 2021-07-31 00:14:21 +08:00
可以考虑一下这个项目,https://github.com/Ailln/cn2an
用这个批量生成所有出现过的数字,然后再批量替换 |
17
lalacat2i OP @MiketsuSmasher 感谢,最近没上才看到你的建议
|