偏移法最简单,我就不说了,但是这种算法存在效率问题,进行些许提速,不过变得很冗长很麻烦,各有利弊吧...- @echo off&setlocal enabledelayedexpansion
- set var=1+123q ewfer 3qfasd efqer 1+1=2=2+2=4 awefawe
- set str1=1+1=2=2+2=4
- set str2=3+3=6
- set len=11
- ::var 为要修改的字符串,str1 为被替换的内容,len 为 str1 的字符长度,str2 为替换后的内容
-
- echo 修改前 !var!
- for /f %%z in ("!str1!") do (
- for /l %%a in (0 75 8189) do (
- set test=!var:~%%a,100!
- if "!test:%%z=!" neq "!test!" (
- for /l %%b in (0 1 99) do (
- if "!test:~%%b,%len%!"=="!str1!" (
- set /a a=%%a+%%b,b=%%a+%%b+len
- for /f "tokens=1,2" %%c in ("!a! !b!") do set var=!var:~,%%c!!str2!!var:~%%d!
- )
- )
- )
- )
- )
- echo 修改后 !var!
- pause
复制代码
|