a000000 发表于 2017-6-24 14:40:07

请教关于正则匹配问题=已解决

本帖最后由 a000000 于 2017-6-27 18:05 编辑

1.txt文件里:

Reveal Act Automap Key:         VK_SUBTRACT
Center Map Scroll Key:          VK_PAUSE
Server Ip Toggle:                1, -1
Quick Exit Game Key:            VK_OEM_MINUS


我想把只要行里带有“Server Ip Toggle”    的就替换为:
Server Ip Toggle:                0, -1
如果没有就在最末尾写入这行
请教大神给个例子如何处理,匹配了半天没成功

a000000 发表于 2017-6-24 14:41:57

符研究了半天的批处理方法:

@echo off
set dev_build_number=10086
::开启命令扩展延迟
setlocal enabledelayedexpansion
for /f "tokens=* delims=" %%a in (%cd%\D2HACKMAP.CFG) do (
    set aa=%%a
    ::截取字符串,匹配是否相等
    if "!aa:~0,17!" == "Server Ip Toggle:" (
       ::定位到所在行,直接替换该行内容
         set aa=Server Ip Toggle:                0, -1
    ) else (
         echo Does not replace.
    )
    ::把内容写入到一个缓存文件
    echo !aa!>>%cd%\temp.txt
)
del %cd%\D2HACKMAP.CFG
ren "%cd%\temp.txt" "%cd%\D2HACKMAP.CFG"
endlocal

afan 发表于 2017-6-24 19:14:37

Local $sSource = _
                'Reveal Act Automap Key:         VK_SUBTRACT' & @CRLF & _
                'Center Map Scroll Key:          VK_PAUSE' & @CRLF & _
                'Server Ip Toggle:                1, -1' & @CRLF & _
                'Quick Exit Game Key:            VK_OEM_MINUS'
;~MsgBox(0, '源字符串', $sSource)
Local $sSRERe = StringRegExpReplace($sSource, '(?mi)(^Server Ip Toggle:)\V*', '$1                0, -1')
If Not @extended Then $sSRERe &= @CRLF & 'Server Ip Toggle:                0, -1'
MsgBox(0, '替换结果', $sSRERe)

a000000 发表于 2017-6-25 08:09:13

多谢A版{:face (411):}

yamakawa 发表于 2017-6-26 14:35:36

楼主修改分类吧

a000000 发表于 2017-6-26 21:29:11

回复 5# yamakawa


    现在没有已解决的分类了,请教下怎么处理?

kk_lee69 发表于 2017-6-27 02:19:29

回复 6# a000000


    已解決在標題 自己打

kk_lee69 发表于 2017-6-27 14:48:39

回复 1# a000000


    http://www.autoitx.com/thread-18544-1-1.html
页: [1]
查看完整版本: 请教关于正则匹配问题=已解决