找回密码
 加入
搜索
查看: 3174|回复: 7

[效率算法] 请教关于正则匹配问题=已解决

  [复制链接]
发表于 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
如果没有就在最末尾写入这行
请教大神给个例子如何处理,匹配了半天没成功
 楼主| 发表于 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
发表于 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)
 楼主| 发表于 2017-6-25 08:09:13 | 显示全部楼层
多谢A版
发表于 2017-6-26 14:35:36 | 显示全部楼层
楼主修改分类吧
 楼主| 发表于 2017-6-26 21:29:11 | 显示全部楼层
回复 5# yamakawa


    现在没有已解决的分类了,请教下怎么处理?
发表于 2017-6-27 02:19:29 | 显示全部楼层
回复 6# a000000


    已解決在標題 自己打
发表于 2017-6-27 14:48:39 | 显示全部楼层
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-22 11:24 , Processed in 0.087363 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表