找回密码
 加入
搜索
查看: 5889|回复: 21

[AU3基础] 关于正则获取TXT文本后输出结果咨询[已解决]

  [复制链接]
发表于 2015-12-7 12:00:34 | 显示全部楼层 |阅读模式
本帖最后由 heroxianf 于 2015-12-7 15:47 编辑
#include <Array.au3>
#include <File.au3>
#include <MsgBoxConstants.au3>
#include <StringConstants.au3>


Local $str, $i
Local $sFilePath = "C:\Users\liuxianfeng1\Desktop\20151207085604.txt"
Local $zz = "\[.*\n[^\.].*"

$str = StringRegExp(FileRead($sFilePath), $zz, 1)

For $i = 1 To UBound($str)
MsgBox(0, 0, $str[1])
Next
文本里的内容是:
.

[mssID=LSKD125456844151154.错误]


这里的文字是(www.baidu.com)随机生成的。

.

[mssID=LSKD125456844151154.错误]

这里的文字是随(www.baidu.com)机生成的。


.


[mssID=LSKD125456844151154.错误]

这里的文字是随(www.baidu.com)机生成的。


.



我想通过正则 \[.*\n[^\.].* 抓取内容后输出,但是没有成功。
发表于 2015-12-7 12:51:00 | 显示全部楼层
光说个错误的表达式,却没说明要捕获什么?
是要捕获中括号里面的吗?那加 \n 是什么鬼…
 楼主| 发表于 2015-12-7 13:30:37 | 显示全部楼层
本帖最后由 heroxianf 于 2015-12-7 13:33 编辑

回复 2# afan


A大,表达式在表达式工具里测试时可以获取我想要的内容的。
要获取的内容是:
[mssID=LSKD125456844151154.错误]
这里的文字是(www.baidu.com)随机生成的。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2015-12-7 13:44:06 | 显示全部楼层
回复 3# heroxianf


    Au3的正则不同…
(?s)(?<=^|\n)\[.*?(?=\r\n\[|$)
 楼主| 发表于 2015-12-7 13:48:26 | 显示全部楼层
回复 4# afan

谢谢A大,我用的是C#的环境测试的正则。看来以后不能用C#环境测试了。
 楼主| 发表于 2015-12-7 13:55:34 | 显示全部楼层
回复 4# afan
#include <Array.au3>
#include <File.au3>
#include <MsgBoxConstants.au3>
#include <StringConstants.au3>


Local $str, $i, $aArray1
Local $sFilePath = "C:\Users\liuxianfeng1\Desktop\20151207085604.txt"
Local $zz = "(?s)(?<=^|\n)\[.*?(?=\r\n\[|$)"

$str = StringRegExp(FileRead($sFilePath), $zz, 1)

For $i = 1 To UBound($str)
        MsgBox(0, "测试结果", $str[0])
Next
A大 我测试的时候,获取的内容超出范围了,  连   “.”   都获取上了。如果点之间有字符的话 也会被获取。
 楼主| 发表于 2015-12-7 14:09:58 | 显示全部楼层



我要的字符就是红框里的东西,其他的都不需要。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2015-12-7 14:30:06 | 显示全部楼层
回复 4# afan


\[.*\]

这个正则只能匹配出[]之间的内容包括[]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2015-12-7 14:34:10 | 显示全部楼层
回复 6# heroxianf


    我以为那个点也是属于随机内容…
(?s)(?<=^|\n)\[.*?(?=\s*\r\n\.|$)
 楼主| 发表于 2015-12-7 14:56:11 | 显示全部楼层
回复 9# afan




A大按照我上图中的内容测试,还是会包含 “.” 和后边的数字。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2015-12-7 15:10:15 | 显示全部楼层
回复  afan




A大按照我上图中的内容测试,还是会包含 “.” 和后边的数字。
heroxianf 发表于 2015-12-7 14:56



    你一楼的测试内容 . 后面就没有的数字吧,怎么捕获到数字了?
 楼主| 发表于 2015-12-7 15:17:34 | 显示全部楼层
回复 11# afan

A大我修改了正则可以只获取我想要的内容了,请帮忙看看是否合理。谢谢
(?s)(?<=^|\n)\[.*?(?=\s*\r\n\n|$)
测试内容(测试内容.之间有可能还生成随机的文字或是数字)
.

[mssID=LSKD125456844151154.错误]


这里的文字是(www.baidu.com)随机生成的。

.
1
.

[mssID=LSKD125456844151154.错误]

这里的文字是随(www.baidu.com)机生成的。


.


[mssID=LSKD125456844151154.错误]

这里的文字是随(www.baidu.com)机生成的。


.

2
.

[mssID=LSKD125456844151154.错误]

这里的文字是随(www.baidu.com)机生成的。


.

3
.
发表于 2015-12-7 15:22:29 | 显示全部楼层
回复  afan

A大我修改了正则可以只获取我想要的内容了,请帮忙看看是否合理。谢谢测试内容(测试内容.之 ...
heroxianf 发表于 2015-12-7 15:17



    你把你贴出来的东西复制下来,用你的表达式测试,跟我提供的表达式的结果刚好相反。
你的测试txt需要以附件的形式上传测试,因为它的换行符不一定是 CRLF
发表于 2015-12-7 15:25:33 | 显示全部楼层
回复 12# heroxianf


    没有Au3的测试工具怎么玩… http://www.autoitx.com/thread-19345-1-1.html
 楼主| 发表于 2015-12-7 15:29:38 | 显示全部楼层
回复 14# afan
TXT文本上传了。我去了解下正则测试工具。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-28 22:18 , Processed in 0.083907 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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