找回密码
 加入
搜索
楼主: touch_xu

[AU3基础] 【已解决】从复杂TXT中提取信息

 火... [复制链接]
发表于 2011-4-13 22:14:46 | 显示全部楼层
还是不知道哪些关键字是固定的
 楼主| 发表于 2011-4-14 09:18:25 | 显示全部楼层
回复 16# 3mile

NVM 01234         220C2A9A24    Pass
Rotation  -1.0<=n=<1.0      0.1    Pass
   X Tilt  -2.0<=n=<2.0     -0.1    Pass
   Y Tilt  -2.0<=n=<2.0      1.4    Pass

红色的是固定出现的,后面的数值是会变的 pass 也是会变的,还要相对位置也是不固定,这次应该说清楚了,继续求教

想要的结果是:
220C2A9A24
0.1
-0.1
1.4
发表于 2011-4-14 09:38:08 | 显示全部楼层
怎么又跟昨天的获取部分不一样了
 楼主| 发表于 2011-4-14 10:52:50 | 显示全部楼层
只是有一个关键字不一样,别的都一样,对正则实在头痛,关键是不能用相对位置
发表于 2011-4-14 11:03:35 | 显示全部楼层
你现在精简到这么几行字符,缺少上下段的字符联系,正则通用性会大大降低
用昨天的附件才是正确的,而且针对昨天的附件,我在5#写的正则完全符合你的要求。
 楼主| 发表于 2011-4-14 11:15:16 | 显示全部楼层
先谢afan,昨天的是可以,请帮帮改下,因为golden id和下面一组的相对位置是不固定,我想独立获取这四个值,相互不受影响,后面三个可以一起获得了,多谢,因为正则这样简练的代码,我实在不会改
 楼主| 发表于 2011-4-14 11:19:25 | 显示全部楼层
下次发帖一定会一次说清楚的,不耽误大家犬多时间,谢谢各位
发表于 2011-4-14 11:20:16 | 显示全部楼层
先贴出附件吧~
发表于 2011-4-14 12:30:05 | 显示全部楼层
回复 22# touch_xu
所谓的不固定那个出现的位置会跟下面的东西颠倒吗,只要能在上面出现 就可以用一句代码搞定 不是的话要稍微复杂点
发表于 2011-4-14 14:35:23 | 显示全部楼层
本帖最后由 love5173 于 2011-4-14 14:37 编辑
$txt="1.txt"
FileOpen($txt,1)
Global $word=FileRead($txt)
Global $a=StringRegExpReplace($word,'(?s).*?(NVM 01234)\h+(\H+).*?(Rotation)\h+\H+\h+(\H+).*?(X Tilt)\h+\H+\h+(\H+).*?(Y Tilt)\h+\H+\h+(\H+).*','\1:\2'&@CRLF&'\3:\4'&@CRLF&'\5:\6'&@CRLF&'\7:\8')
MsgBox(0,"",$a)
你也不回答我的问题,我先写一个nvm 一定在上面出现的例子吧
 楼主| 发表于 2011-4-14 19:02:30 | 显示全部楼层
本帖最后由 touch_xu 于 2011-4-14 19:10 编辑

回复 25# love5173

呵呵,不好意思,刚才看到你的签名:“有正则问题可以找我”我测试了,是提取不到啊
我又上传了附件,麻烦帮试下
---------- ------ -----------  -------
NVM 01234         220C2A9A24    Pass
--------------------------------------------------
  Tilt and Rotation
   Items       Limits    Measured  Results
--------- ------------- --------  -------
Rotation  -1.0<=n=<1.0      0.1    Pass
   X Tilt  -2.0<=n=<2.0     -0.1    Pass
   Y Tilt  -2.0<=n=<2.0      1.4    Pass

NVM后面的值如果出现,Rotation 等后面的值才会出现,不过我从你们的代码中已经可以提取NVM 01234的值了

现在是想用一个正则提取Rotation X Y 三个值,不想NVM在一起了,这样方便判读错误,谢谢

本帖子中包含更多资源

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

×
发表于 2011-4-14 19:29:45 | 显示全部楼层
$txt="1.txt"
FileOpen($txt,1)
Global $word=FileRead($txt)
Global $a=StringRegExpReplace($word,'(?s).*?(NVM 01234)\s+([^\s]+).*(Rotation)\s+[^\s]+\s+([^\s]+).*?(X Tilt)\s+[^\s]+\s+([^\s]+).*?(Y Tilt)\s+[^\s]+\s+([^\s]+).*','\1:\2'&@CRLF&'\3:\4'&@CRLF&'\5:\6'&@CRLF&'\7:\8')
MsgBox(0,"",$a)
请问你的附件里面 rotation 后面内容跟你在网站写的怎么格式有冲突?带个空格是你自己弄的?
发表于 2011-4-14 20:10:27 | 显示全部楼层
(?si)NVM\V+?(\H+)\h+\H+\h+\v.+?-\s+Rotation.+?(\H+)\h+\H+\h+\v+.+?(\H+)\h+\H+\h+\v+.+?(\H+)\h+\H+\h+\v+
发表于 2011-4-14 20:16:25 | 显示全部楼层
回复 28# afan
大叔,我现在也没看出\H跟^\h有什么区别,是他的说明文件不对还是我中文太差
\H---任何不是水平的空白字符
到底是空白还是非空白
发表于 2011-4-14 20:21:11 | 显示全部楼层
回复 29# love5173


    区别就是 \H[^\h] 少3个字符,书写更直观、简洁,而匹配作用一样~
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-16 13:44 , Processed in 0.069812 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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