afan 发表于 2012-3-20 14:57:42

当然,别忘了写入文件(如果需要的话)Local $sFile = @ScriptDir & '\需要替换的文件.txt'
Local $Str = FileRead($sFile)
Local $sReplace = StringRegExpReplace($str, '(?i)disabled=no(.+\s+.+name=\h*(\H.+?)\h*password=\h*\2)', 'disabled=yes$1')
If Not @Error And @Extended = 0 Then Exit MsgBox(48, '注意', '没啥可换 ')
Local $Extended = @Extended
FileDelete($sFile)
If FileWrite($sFile, $sReplace) Then MsgBox(64, '完成', '成功替换 ' & $Extended & ' 处 ')

流沙枫 发表于 2012-3-20 15:26:56

回复 16# afan

可以了,大神太牛了,非常感谢...
回去一定好好研究下代码意思!
只怪自己当初学艺不精,让大大劳神了!!
{:1_580:}

shqf 发表于 2012-3-20 15:44:51

afan的正则简直用的是出神入化了,看得我头晕呵,我等还需要大大地努力啊。

流沙枫 发表于 2012-3-20 21:08:01

回复 16# afan


    $str, '(?i)disabled=no(.+\s+.+name=\h*(\H.+?)\h*password=\h*\2)', 'disabled=yes$1'


大大,能再帮解释下这行正则式意思么?
看了会,还是不太理解......

afan 发表于 2012-3-20 21:11:57

回复afan


    $str, '(?i)disabled=no(.+\s+.+name=\h*(\H.+?)\h*password=\h*\2)', 'disabled=yes ...
流沙枫 发表于 2012-3-20 21:08 http://www.autoitx.com/images/common/back.gif


    不好解释,解释出来就成你在一楼表述的要求了。
主要在于 (\H.+?) 以及 \2 ,这两个就是判断是否存在一样了。

流沙枫 发表于 2012-3-20 21:20:23

回复 20# afan


    .
Match any character except newline
\s
Match any whitespace character
*
Repeat any number of times
+
Repeat one or more times

正则式里的符号意思?

afan 发表于 2012-3-20 21:23:37

回复 21# 流沙枫


    有中文帮助文档,看看 StringRegExp 函数解释

流沙枫 发表于 2012-3-20 21:30:59

回复 22# afan

好的,谢谢啦,努力补习中....
(?i) Case-insensitivity flag. This does not operate as a group. It tells the regular expression engine to do case-insensitive matching from that point on.

\h any horizontal whitespace character.

\H any character that is not a horizontal whitespace character.

* Repeat the previous character, set or group 0 or more times. Equivalent to {0,}

2 Return array of matches including the full match (Perl / PHP style).

131738 发表于 2012-3-20 21:53:55

当然,别忘了写入文件(如果需要的话)
afan 发表于 2012-3-20 14:57 http://www.autoitx.com/images/common/back.gif

这里留个记号,看看 '没啥可换 ' 这句我能用否?

    http://www.autoitx.com/forum.php?mod=redirect&goto=findpost&ptid=31057&pid=412091&fromuid=161

流沙枫 发表于 2012-3-20 22:05:38

回复 22# afan


    $1是计算加1么?

afan 发表于 2012-3-20 22:06:32

引用第1个组

流沙枫 发表于 2012-3-20 22:18:43

回复 26# afan


    name=\h*
password=\h*

\h*是重输出name= 和password=?

afan 发表于 2012-3-20 22:20:10

\h* 是指匹配 0到尽量多个 空格

apoorman1986 发表于 2012-3-20 22:40:23

楼主用的是ROS软路由,学习了{:face (355):}

流沙枫 发表于 2012-3-20 22:41:59

回复 28# afan


.+? 匹配字符串是否再出现?
页: 1 [2] 3
查看完整版本: 文本有条件替换...... [已解决]