找回密码
 加入
搜索
查看: 3668|回复: 9

[AU3基础] 从文本中提取文件名

  [复制链接]
发表于 2012-4-14 23:11:43 | 显示全部楼层 |阅读模式
请教各位大大,如何从下面文本中提取出TxT_19430.txt、att000.jpg等等文件名?
<smil>
        <head>
                <layout>
                        <root-layout width="176" height="208"/>
                        <region id="Image" width="56%" height="24%" left="0%" top="0%"/>
                        <region id="Text" width="56%" height="24%" left="0%" top="24%"/>
                </layout>
        </head>
        <body>
                <par dur="180000ms">
                        <text src="TxT_19430.txt" region="Text"/>
                        <img src="att000.jpg" region="Image"/>
                </par>
                <par dur="180000ms">
                        <text src="TxT_18864.txt" region="Text"/>
                </par>
                <par dur="180000ms">
                        <text src="TxT_29443.txt" region="Text"/>
                </par>
                <par dur="180000ms">
                        <text src="TxT_21602.txt" region="Text"/>
                </par>
                <par dur="180000ms">
                        <text src="TxT_2030.txt" region="Text"/>
                </par>
                <par dur="10000ms">
                        <img src="att060.jpg" region="Image"/>
                </par>
                <par dur="180000ms">
                        <text src="TxT_22339.txt" region="Text"/>
                </par>
                <par dur="180000ms">
                        <text src="TxT_6280.txt" region="Text"/>
                </par>
                <par dur="180000ms">
                        <text src="TxT_16223.txt" region="Text"/>
                </par>
                <par dur="10000ms">
                        <img src="att100.jpg" region="Image"/>
                </par>
                <par dur="180000ms">
                        <text src="TxT_24982.txt" region="Text"/>
                </par>
                <par dur="10000ms">
                        <img src="att120.jpg" region="Image"/>
                </par>
                <par dur="180000ms">
                        <text src="TxT_29351.txt" region="Text"/>
                </par>
                <par dur="180000ms">
                        <text src="TxT_25734.txt" region="Text"/>
                </par>
                <par dur="180000ms">
                        <text src="TxT_15145.txt" region="Text"/>
                </par>
                <par dur="180000ms">
                        <text src="TxT_8240.txt" region="Text"/>
                </par>
                <par dur="120000ms">
                        <text src="TxT_11575.txt" region="Text"/>
                </par>
                <par dur="10000ms">
                        <img src="att180.gif" region="Image"/>
                </par>
        </body>
</smil>
发表于 2012-4-14 23:29:17 | 显示全部楼层
#include<array.au3>
$string = _ 
'<smil>' & @CRLF & _
'        <head>' & @CRLF & _
'                <layout>' & @CRLF & _
'                        <root-layout width="176" height="208"/>' & @CRLF & _
'                        <region id="Image" width="56%" height="24%" left="0%" top="0%"/>' & @CRLF & _
'                        <region id="Text" width="56%" height="24%" left="0%" top="24%"/>' & @CRLF & _
'                </layout>' & @CRLF & _
'        </head>' & @CRLF & _
'        <body>' & @CRLF & _
'                <par dur="180000ms">' & @CRLF & _
'                        <text src="TxT_19430.txt" region="Text"/>' & @CRLF & _
'                        <img src="att000.jpg" region="Image"/>' & @CRLF & _
'                </par>' & @CRLF & _
'                <par dur="180000ms">' & @CRLF & _
'                        <text src="TxT_18864.txt" region="Text"/>' & @CRLF & _
'                </par>' & @CRLF & _
'                <par dur="180000ms">' & @CRLF & _
'                        <text src="TxT_29443.txt" region="Text"/>' & @CRLF & _
'                </par>' & @CRLF & _
'                <par dur="180000ms">' & @CRLF & _
'                        <text src="TxT_21602.txt" region="Text"/>' & @CRLF & _
'                </par>' & @CRLF & _
'                <par dur="180000ms">' & @CRLF & _
'                        <text src="TxT_2030.txt" region="Text"/>' & @CRLF & _
'                </par>' & @CRLF & _
'                <par dur="10000ms">' & @CRLF & _
'                        <img src="att060.jpg" region="Image"/>' & @CRLF & _
'                </par>' & @CRLF & _
'                <par dur="180000ms">' & @CRLF & _
'                        <text src="TxT_22339.txt" region="Text"/>' & @CRLF & _
'                </par>' & @CRLF & _
'                <par dur="180000ms">' & @CRLF & _
'                        <text src="TxT_6280.txt" region="Text"/>' & @CRLF & _
'                </par>' & @CRLF & _
'                <par dur="180000ms">' & @CRLF & _
'                        <text src="TxT_16223.txt" region="Text"/>' & @CRLF & _
'                </par>' & @CRLF & _
'                <par dur="10000ms">' & @CRLF & _
'                        <img src="att100.jpg" region="Image"/>' & @CRLF & _
'                </par>' & @CRLF & _
'                <par dur="180000ms">' & @CRLF & _
'                        <text src="TxT_24982.txt" region="Text"/>' & @CRLF & _
'                </par>' & @CRLF & _
'                <par dur="10000ms">' & @CRLF & _
'                        <img src="att120.jpg" region="Image"/>' & @CRLF & _
'                </par>' & @CRLF & _
'                <par dur="180000ms">' & @CRLF & _
'                        <text src="TxT_29351.txt" region="Text"/>' & @CRLF & _
'                </par>' & @CRLF & _
'                <par dur="180000ms">' & @CRLF & _
'                        <text src="TxT_25734.txt" region="Text"/>' & @CRLF & _
'                </par>' & @CRLF & _
'                <par dur="180000ms">' & @CRLF & _
'                        <text src="TxT_15145.txt" region="Text"/>' & @CRLF & _
'                </par>' & @CRLF & _
'                <par dur="180000ms">' & @CRLF & _
'                        <text src="TxT_8240.txt" region="Text"/>' & @CRLF & _
'                </par>' & @CRLF & _
'                <par dur="120000ms">' & @CRLF & _
'                        <text src="TxT_11575.txt" region="Text"/>' & @CRLF & _
'                </par>' & @CRLF & _
'                <par dur="10000ms">' & @CRLF & _
'                        <img src="att180.gif" region="Image"/>' & @CRLF & _
'                </par>' & @CRLF & _
'        </body>' & @CRLF & _
'</smil>'
Local $filename=StringRegExp($string,'(?m)(?<=src\=\").+(?=\"\sregion)',3)
_ArrayDisplay($filename)

评分

参与人数 3金钱 +54 收起 理由
zsltxx + 20 好强
user3000 + 9
lixiaolong + 25 很快啊!

查看全部评分

发表于 2012-4-14 23:33:28 | 显示全部楼层
回复 1# zsltxx

#include <Array.au3>
Local $Str = _
                '<smil>' & @CRLF & _
                '        <head>' & @CRLF & _
                '                <layout>' & @CRLF & _
                '                        <root-layout width="176" height="208"/>' & @CRLF & _
                '                        <region id="Image" width="56%" height="24%" left="0%" top="0%"/>' & @CRLF & _
                '                        <region id="Text" width="56%" height="24%" left="0%" top="24%"/>' & @CRLF & _
                '                </layout>' & @CRLF & _
                '        </head>' & @CRLF & _
                '        <body>' & @CRLF & _
                '                <par dur="180000ms">' & @CRLF & _
                '                        <text src="TxT_19430.txt" region="Text"/>' & @CRLF & _
                '                        <img src="att000.jpg" region="Image"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="180000ms">' & @CRLF & _
                '                        <text src="TxT_18864.txt" region="Text"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="180000ms">' & @CRLF & _
                '                        <text src="TxT_29443.txt" region="Text"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="180000ms">' & @CRLF & _
                '                        <text src="TxT_21602.txt" region="Text"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="180000ms">' & @CRLF & _
                '                        <text src="TxT_2030.txt" region="Text"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="10000ms">' & @CRLF & _
                '                        <img src="att060.jpg" region="Image"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="180000ms">' & @CRLF & _
                '                        <text src="TxT_22339.txt" region="Text"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="180000ms">' & @CRLF & _
                '                        <text src="TxT_6280.txt" region="Text"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="180000ms">' & @CRLF & _
                '                        <text src="TxT_16223.txt" region="Text"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="10000ms">' & @CRLF & _
                '                        <img src="att100.jpg" region="Image"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="180000ms">' & @CRLF & _
                '                        <text src="TxT_24982.txt" region="Text"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="10000ms">' & @CRLF & _
                '                        <img src="att120.jpg" region="Image"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="180000ms">' & @CRLF & _
                '                        <text src="TxT_29351.txt" region="Text"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="180000ms">' & @CRLF & _
                '                        <text src="TxT_25734.txt" region="Text"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="180000ms">' & @CRLF & _
                '                        <text src="TxT_15145.txt" region="Text"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="180000ms">' & @CRLF & _
                '                        <text src="TxT_8240.txt" region="Text"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="120000ms">' & @CRLF & _
                '                        <text src="TxT_11575.txt" region="Text"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="10000ms">' & @CRLF & _
                '                        <img src="att180.gif" region="Image"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '        </body>' & @CRLF & _
                '</smil>'

Local $Test

$Test = StringRegExp($str, '<(?i)text\hsrc\="([^"]+)', 3)
If Not @Error Then _ArrayDisplay($Test, UBound($Test))

$Test = StringRegExp($str, '<(?i)img\hsrc\="([^"]+)', 3)
If Not @Error Then _ArrayDisplay($Test, UBound($Test))

$Test = StringRegExp($str, '<(?i)(?:text|img)\hsrc\="([^"]+)', 3)
If Not @Error Then _ArrayDisplay($Test, UBound($Test))

评分

参与人数 3金钱 +65 贡献 +2 收起 理由
zsltxx + 20 Thanks
user3000 + 15 + 2 cool
haijie1223 + 30 对正则我是菜鸟,向你学习

查看全部评分

 楼主| 发表于 2012-4-14 23:34:50 | 显示全部楼层
谢谢!阿杰好强,对正则头疼
发表于 2012-4-14 23:40:10 | 显示全部楼层
不懂正则 学习
发表于 2012-4-14 23:46:21 | 显示全部楼层
处理此类网页数据, 我喜欢用  ([^"]+)
匹配  链接, 标题 等等, 都可以用它, 只是前面的字符要相应修改下.
 楼主| 发表于 2012-4-14 23:58:58 | 显示全部楼层
狂补正则中……向汗颜致敬
发表于 2012-4-15 18:10:19 | 显示全部楼层
#include <Array.au3>

$String = _
                '<smil>' & @CRLF & _
                '        <head>' & @CRLF & _
                '                <layout>' & @CRLF & _
                '                        <root-layout width="176" height="208"/>' & @CRLF & _
                '                        <region id="Image" width="56%" height="24%" left="0%" top="0%"/>' & @CRLF & _
                '                        <region id="Text" width="56%" height="24%" left="0%" top="24%"/>' & @CRLF & _
                '                </layout>' & @CRLF & _
                '        </head>' & @CRLF & _
                '        <body>' & @CRLF & _
                '                <par dur="180000ms">' & @CRLF & _
                '                        <text src="TxT_19430.txt" region="Text"/>' & @CRLF & _
                '                        <img src="att000.jpg" region="Image"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="180000ms">' & @CRLF & _
                '                        <text src="TxT_18864.txt" region="Text"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="180000ms">' & @CRLF & _
                '                        <text src="TxT_29443.txt" region="Text"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="180000ms">' & @CRLF & _
                '                        <text src="TxT_21602.txt" region="Text"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="180000ms">' & @CRLF & _
                '                        <text src="TxT_2030.txt" region="Text"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="10000ms">' & @CRLF & _
                '                        <img src="att060.jpg" region="Image"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="180000ms">' & @CRLF & _
                '                        <text src="TxT_22339.txt" region="Text"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="180000ms">' & @CRLF & _
                '                        <text src="TxT_6280.txt" region="Text"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="180000ms">' & @CRLF & _
                '                        <text src="TxT_16223.txt" region="Text"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="10000ms">' & @CRLF & _
                '                        <img src="att100.jpg" region="Image"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="180000ms">' & @CRLF & _
                '                        <text src="TxT_24982.txt" region="Text"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="10000ms">' & @CRLF & _
                '                        <img src="att120.jpg" region="Image"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="180000ms">' & @CRLF & _
                '                        <text src="TxT_29351.txt" region="Text"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="180000ms">' & @CRLF & _
                '                        <text src="TxT_25734.txt" region="Text"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="180000ms">' & @CRLF & _
                '                        <text src="TxT_15145.txt" region="Text"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="180000ms">' & @CRLF & _
                '                        <text src="TxT_8240.txt" region="Text"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="120000ms">' & @CRLF & _
                '                        <text src="TxT_11575.txt" region="Text"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '                <par dur="10000ms">' & @CRLF & _
                '                        <img src="att180.gif" region="Image"/>' & @CRLF & _
                '                </par>' & @CRLF & _
                '        </body>' & @CRLF & _
                '</smil>'

Local $aFileName = StringRegExp($String, '(?<=src=")[^\.]+\.\w+', 3)
_ArrayDisplay($aFileName)

评分

参与人数 2金钱 +41 贡献 +7 收起 理由
lixiaolong + 30 + 5 学习了!
user3000 + 11 + 2 向您致敬!

查看全部评分

 楼主| 发表于 2012-4-17 15:49:03 | 显示全部楼层
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-30 15:20 , Processed in 0.106914 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表