love5173 发表于 2012-9-26 10:47:12

回复 15# lhylm
自己的思路未必是错误的,别人的未必最好
看看这个跟你的有多大区别#include<array.au3>
$openMftFile = FileOpen("D:\UserFile\Desktop\file.txt", 0)
$mftRead = FileRead($openMftFile)
$keyword = 'jpg'
$aRecords = StringRegExp($mftRead,"(?i).*?" & $keyword & "[^\\]*\v",3)
_ArrayDisplay($aRecords)

lhylm 发表于 2012-9-27 19:57:36

回复 16# love5173


这样的c:\我们\我们的生活.txt好像不能匹配出来,有的匹配出来中间有空行。

love5173 发表于 2012-9-29 22:06:40

本帖最后由 love5173 于 2012-9-29 22:07 编辑

回复 17# lhylm

或许你使用的时候跟测试的文本不是一样的,我用你的测试文本试验是没问题的,只有一种情况会出问题,就是字符串的最后一行没有换行符 会有问题,这个可以通过先给字符串加一个换行符解决StringRegExp($mftRead,"(?i).*?" & $keyword & "\v",3)这样也是没问题的
就怕你里面有空格什么的,如果没有这么写也可以的

love5173 发表于 2012-9-29 22:11:13

另外,正则的简单与否关系到程序的执行速度,所以写的时候尽量选择最简单的匹配。我不是要说谁谁谁的不对,只是执行效率会不同而已。对于小程序这个可以忽略,但是比较大的数据的时候就非常明显了

lhylm 发表于 2012-10-3 15:20:56

回复 19# love5173


非常感谢大侠的热心回复!
页: 1 [2]
查看完整版本: 求教正则表达式问题[已解决]