问下正则匹配链接和提取问题
本帖最后由 lynfr8 于 2010-6-12 02:44 编辑文本如下:
第一列 第二列 第三列
1.....
40 Can AutoitX run a complete script or an a3x file? http://www.autoitscript.com/forum/index.php?showtopic=83292
41 Last post by: http://www.autoitscript.com/forum/index.php?showtopic=83292&view=getlastpost
42 3.3.0.0 Unicode Functions http://www.autoitscript.com/forum/index.php?showtopic=89698
43 Last post by: http://www.autoitscript.com/forum/index.php?showtopic=89698&view=getlastpost
条件:
第一列为序号,从1-40
第二列为文章名,如Can AutoitX run a complete script or an a3x file? 和 3.3.0.0 Unicode Functions
第三列为文章链接,如http://www.autoitscript.com/forum/index.php?showtopic=83292
其中链接部分是有规律的,就是showtopic=数字部分不同
目的:
1.删除序列号【StringTrimLeft可以做到】
删除含有Last post by的整行(如41、43行)
2.通过正则表达式和循环结构连续分别提取40、42行的文章名到$a,提取链接到$b
已解决
$file = FileOpen("2.txt", 0)
If $file = -1 Then
MsgBox(0, "错误", "不能打开文件.")
Exit
EndIf
dim $count;
While 1
$line = FileReadLine($file)
If @error = -1 Then ExitLoop
$array = StringSplit($line, " ")
$count = $count + 1
dim $title = ""
dim $name = ""
dim $link
for $i = 3 to UBound($array) - 3
$title = $title & " "& $array[$i]
$name = $name & "_" & $array[$i]
Next 在线等....... 你试试看能不能用
#include<array.au3>
$text='40 Can AutoitX run a complete script or an a3x file? http://www.autoitscript.com/forum/index.php?showtopic=83292'&@CRLF& _
'41 Last post by: http://www.autoitscript.com/forum/index.php?showtopic=83292&view=getlastpost'&@CRLF& _
'42 3.3.0.0 Unicode Functions http://www.autoitscript.com/forum/index.php?showtopic=89698'&@CRLF& _
'43 Last post by: http://www.autoitscript.com/forum/index.php?showtopic=89698&view=getlastpost'
;~ ConsoleWrite($text)
$array=StringRegExp($text,'\d+\s(.+)\s(http.+)',3);stringregexp($text,'\d+ (.+) (http.+)',3)
;~ _ArrayDisplay($array)
For $i=0 To UBound($array)-1 Step 2
If $array[$i]='Last post by:' Then ContinueLoop
$a=$array[$i]
$b=$array[$i+1]
ConsoleWrite($a&" "&$b)
Next
我试了下可以用,但有点小问题
[ 本帖最后由 cnsnc 于 2009-4-17 22:06 编辑 ] 这个对我高深了!
帮不了你!! \d+\s+(.*?)\s+(http://www\.autoitscript\.com/forum/index\.php\?showtopic\=\d+)\s*\r 这个可能对你有帮助
<span.*?<a.*?href="([^&]*?\d+)".*?>(.*?)</a>.*\r\n
页:
[1]