标题: [文本处理] 如何将TXT中的中文数字转成阿拉伯数字? [打印本页]
作者: autoav 时间: 2020-5-18 13:36 标题: 如何将TXT中的中文数字转成阿拉伯数字?
很多TXT小说,都采用中文数字列章节,比如:
第一章 这是标题
这是第一章内容
第二十章 这是标题
这是第二十章内容
第两百廿一章 这是标题
这是XX内容
第千零一章 这是标题
这是XXX内容
谁帮忙指导一下
作者: smss 时间: 2020-5-18 13:41
本帖最后由 smss 于 2020-5-18 14:17 编辑
- @echo off&setlocal enabledelayedexpansion
- for /f "tokens=*" %%i in (1.txt) do (if "%%i"=="" (echo.) else (set "n=%%i"&call :chg))>>new_1.txt
- pause
- exit
- :chg
- set "n=!n:九十=90!"
- set "n=!n:八十=80!"
- set "n=!n:七十=70!"
- set "n=!n:六十=60!"
- set "n=!n:五十=50!"
- set "n=!n:四十=40!"
- set "n=!n:三十=30!"
- set "n=!n:二十=20!"
- set "n=!n:十一=11!"
- set "n=!n:十二=12!"
- set "n=!n:十三=13!"
- set "n=!n:十四=14!"
- set "n=!n:十五=15!"
- set "n=!n:十六=16!"
- set "n=!n:十七=17!"
- set "n=!n:十八=18!"
- set "n=!n:十九=19!"
- set "n=!n:十=10!"
- set "n=!n:九=9!"
- set "n=!n:八=8!"
- set "n=!n:七=7!"
- set "n=!n:六=6!"
- set "n=!n:五=5!"
- set "n=!n:四=4!"
- set "n=!n:三=3!"
- set "n=!n:二=2!"
- set "n=!n:一=1!"
- set "n=!n:零=0!"
- set "n=!n:09=9!"
- set "n=!n:08=8!"
- set "n=!n:07=7!"
- set "n=!n:06=6!"
- set "n=!n:05=5!"
- set "n=!n:04=4!"
- set "n=!n:03=3!"
- set "n=!n:02=2!"
- set "n=!n:01=1!"
- echo !n!
- goto :eof
复制代码
自己加
作者: autoav 时间: 2020-5-18 14:21
本帖最后由 autoav 于 2020-5-18 14:32 编辑
回复 2# smss
http://www.bathome.net/thread-30879-1-1.html
例子倒是有点看懂了,但是在RegEx()如何才能反复替换,现在文件执行一次,只能替换一次- Function RegEx(txt)
- Dim re, s, i, s1, ss
- Set re = New RegExp
- re.Pattern = "(第)([" & str & "]+)(章)"
- If Not re.Test(txt) Then RegEx = txt : Exit Function
- s = re.Execute(txt)(0).SubMatches(1) : s = Replace(s, "两", "二")
- If Left(s, 1) = "十" Then s = "一" & s
- For i = 1 to Len(s)
- s1 = Mid(s, i, 1)
- If InStr(str, s1) > 10 Then
- ss = ss & "*10^" & (InStr(str, s1)-10) & "+"
- Else ss = ss & (InStr(str, s1)-1)
- End If
- Next
- s = Right("0000" & eval(ss & "+0"), 4)
- RegEx = re.Replace(txt, "$1" & s & "$3")
- End Function
复制代码
作者: autoav 时间: 2020-5-18 14:23
自己加
smss 发表于 2020-5-18 13:41
这个办法就算了
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |