[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 如何将TXT中的中文数字转成阿拉伯数字?

很多TXT小说,都采用中文数字列章节,比如:
第一章 这是标题
这是第一章内容

第二十章  这是标题
这是第二十章内容

第两百廿一章  这是标题
这是XX内容

第千零一章  这是标题
这是XXX内容

谁帮忙指导一下

自己加
smss 发表于 2020-5-18 13:41

这个办法就算了

TOP

本帖最后由 autoav 于 2020-5-18 14:32 编辑

回复 2# smss
http://www.bathome.net/thread-30879-1-1.html
例子倒是有点看懂了,但是在RegEx()如何才能反复替换,现在文件执行一次,只能替换一次
  1. Function RegEx(txt)
  2.     Dim re, s, i, s1, ss
  3.     Set re = New RegExp
  4.     re.Pattern = "(第)([" & str & "]+)(章)"
  5.     If Not re.Test(txt) Then RegEx = txt : Exit Function
  6.            s = re.Execute(txt)(0).SubMatches(1) : s = Replace(s, "两", "二")
  7.     If Left(s, 1) = "十" Then s = "一" & s
  8.     For i = 1 to Len(s)
  9.         s1 = Mid(s, i, 1)
  10.         If InStr(str, s1) > 10 Then
  11.             ss = ss & "*10^" & (InStr(str, s1)-10) & "+"
  12.         Else ss = ss & (InStr(str, s1)-1)
  13.         End If
  14.     Next
  15.     s = Right("0000" & eval(ss & "+0"), 4)
  16.     RegEx = re.Replace(txt, "$1" & s & "$3")
  17. End Function
复制代码

TOP

本帖最后由 smss 于 2020-5-18 14:17 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=*" %%i in (1.txt) do (if "%%i"=="" (echo.) else (set "n=%%i"&call :chg))>>new_1.txt
  3. pause
  4. exit
  5. :chg
  6. set "n=!n:九十=90!"
  7. set "n=!n:八十=80!"
  8. set "n=!n:七十=70!"
  9. set "n=!n:六十=60!"
  10. set "n=!n:五十=50!"
  11. set "n=!n:四十=40!"
  12. set "n=!n:三十=30!"
  13. set "n=!n:二十=20!"
  14. set "n=!n:十一=11!"
  15. set "n=!n:十二=12!"
  16. set "n=!n:十三=13!"
  17. set "n=!n:十四=14!"
  18. set "n=!n:十五=15!"
  19. set "n=!n:十六=16!"
  20. set "n=!n:十七=17!"
  21. set "n=!n:十八=18!"
  22. set "n=!n:十九=19!"
  23. set "n=!n:十=10!"
  24. set "n=!n:九=9!"
  25. set "n=!n:八=8!"
  26. set "n=!n:七=7!"
  27. set "n=!n:六=6!"
  28. set "n=!n:五=5!"
  29. set "n=!n:四=4!"
  30. set "n=!n:三=3!"
  31. set "n=!n:二=2!"
  32. set "n=!n:一=1!"
  33. set "n=!n:零=0!"
  34. set "n=!n:09=9!"
  35. set "n=!n:08=8!"
  36. set "n=!n:07=7!"
  37. set "n=!n:06=6!"
  38. set "n=!n:05=5!"
  39. set "n=!n:04=4!"
  40. set "n=!n:03=3!"
  41. set "n=!n:02=2!"
  42. set "n=!n:01=1!"
  43. echo !n!
  44. goto :eof
复制代码
自己加

TOP

返回列表