本帖最后由 binghc 于 2010-11-15 11:49 编辑
本人疑问多多,不知道是我正则有问题还是au3本身的问题
a.txt和b.txt还是一楼的内容,用下面的代码生成的result.txt作为测试文件
$fileA = 'a.txt'
$fileB = 'b.txt'
$StrA = FileRead($fileA)
$StrB = FileRead($fileB)
$StrA = StringRegExp($StrA, '(?m)^.*', 3)
$StrB = StringRegExp($StrB, '(?m)^.*', 3)
If UBound($StrA) <> UBound($StrB) Then
MsgBox(0, '', $fileA & ':' & UBound($StrA) & ' 不等于 ' & $fileB & ':' & UBound($StrB))
Exit
EndIf
Dim $STR3
For $i = 0 To UBound($StrA) - 1
$STR3 &= $StrA[$i] & @CRLF & $StrB[$i] & @CRLF
If $i = 3 Then $STR3 &= @CRLF & ' ' & @CRLF
Next
$resultfile = 'result.txt'
If FileExists($resultfile) Then FileDelete($resultfile)
FileWrite($resultfile, $STR3)
$str = FileRead($resultfile)
ShellExecute($resultfile)
MsgBox(0, '结果', $str)
测试代码
$s=FileRead('result.txt')
$s=StringRegExp($s,'(?m)^\V*',3)
MsgBox(0,'',UBound($s))
For $i=0 to UBound($s)-1
MsgBox(0,'','sdf'&$s[$i]&'sdf')
Next
用这个代码测试上面生成的result.txt结果只有九条结果(可能又是版本的问题,我这里用的是3.2.13.7.1)
而用Afan的正则工具都显示出来了(Afan正则工具里的测试文本是我从这个result.txt中直接复制过去的,
从Au3。reghelper里的文本可以看出复制过去后每行文本之间没有多余的空行,而如果复制到SciTE编辑器
中每行就会有多出一空行,个人认为这里代码测试的文本和Au3.helper里测试的文本就是不一样的,虽然我什么都
没做,只是复制粘贴。肉眼能看到的本身就不一样,代码中测试的文本,肉眼没办法看到,用msgbox输出,结果
和SciTE一样,中间会多出一空行)
现在我真正想做的就是,我肉眼看到result的内容是什么样的,用正则提取出来后就是怎么样的,也就是说所有
的空行都要提取出来。所以我还是觉得这个result.txt本身就有问题,大家又是怎么看呢?
所有问题的最后还是回到了三个符号上@CRLF、@CR、@LF。现在已经知道如果用@CR或则@LF作为换行符,
result中就会有黑点产生,这本身就有问题,不管用正则提取后的结果正确与否
|