需求:遍历文本文件,在里面找到像素单位(例:“100px”),替换成相对单位(例如:“3rem”);px与rem单位转换过程中是一个固定比例。
研究半天弄了下面一个脚本,但是不能替换到位。望大佬给个意见
Dim regEx,Match,Matches
Set regEx = New RegExp '创建一个正则表达式
regEx.Pattern = "^[1-9]\d*px$" '设置正则表达式的匹配模式
regEx.IgnoreCase = True '设置为不区分大小写
regEx.Global = True '设置为全局可用
dim fso, f
set fso = CreateObject("Scripting.FileSystemObject")
set f = fso.OpenTextFile("1.txt", 1, false) '第二个参数 1 表示只读打开,第三个参数表示目标文件不存在时是否创建
set e = fso.OpenTextFile("2.txt", 8, True)
Do Until f.AtEndOfStream
strLine = f.ReadLine() '从当前位置向后读取直到遇到换行符(不读取换行符),并将当前位置移动到下一行的第一个字符,注意:无参数
Set Matches = regEx.Execute(strLine) '执行搜索
For Each Match in Matches '遍历所有的匹配
x=Len(Match)
n=Left(Match,x-2) ' 拆分去掉最后的px
o = n/30 ' 换算。
p ="rem"
replStr = o&p' 拼接。
MsgBox regEx.Peplace(strLine,replStr)
Next
e.WriteLine(strLine)
Loop
f.Close()
e.Close()
set f = nothing
set fso = nothing