crkey12345 发表于 2010-8-20 16:38:30

根据字符数提取文本文件的对应行。

某个文本文件ex.txt,大概三万多行,
如果此行有8个字符(注:英文字符),就把它提取出来,另存或把不符合条件的行删除。

Ziya 发表于 2010-8-20 16:54:41

$file = FileRead("bt.txt")
$line = StringRegExp($file,"{8}",3)
MsgBox(0,"",UBound($line))
For $i = 1 To UBound($line)- 1
FileWrite("tb.txt",$line[$i]&@CRLF)
Next读取文本为bt.txt
符合条件的行写入到tb.txt
只匹配8位大小写英文
请做好备份

水木子 发表于 2010-8-20 16:59:19

本帖最后由 水木子 于 2010-8-20 17:11 编辑

是有8个英文字符,还是只有8个英文字符??

1A2B3C4d5e6F7G8H这个字符串也含有8个英文字符,不知道楼主是问的哪种情况。


这个是 只有8个英文字符的情况Local $sResult

$sText = 'asdasd0434' & @CRLF & _
                'asdsad' & @CRLF & _
                'asdioeiroiefjdsf' & @CRLF & _
                'sdjasd' & @CRLF & _
                'djskfjdkfgkjg' & @CRLF & _
                'd09' & @CRLF & _
                'adskfjki' & @CRLF & _
                'asdjalskdjlk' & @CRLF & _
                'asdkdjkf' & @CRLF & _
                'asdkjsadkjlkasjdl'
               
$aReg = StringRegExp(@CRLF & $sText, '(?i)\n({8})\r', 3)

For $i = 0 To UBound($aReg) - 1
        $sResult &= $aReg[$i] & @CRLF
Next
MsgBox(0, '8个英文字符', $sResult)

minterz 发表于 2010-8-22 00:16:11

呵呵,都是正则强人啊。。
页: [1]
查看完整版本: 根据字符数提取文本文件的对应行。