3mile 发表于 2011-4-13 22:14:46

还是不知道哪些关键字是固定的

touch_xu 发表于 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

afan 发表于 2011-4-14 09:38:08

怎么又跟昨天的获取部分不一样了

touch_xu 发表于 2011-4-14 10:52:50

只是有一个关键字不一样,别的都一样,对正则实在头痛,关键是不能用相对位置

afan 发表于 2011-4-14 11:03:35

你现在精简到这么几行字符,缺少上下段的字符联系,正则通用性会大大降低
用昨天的附件才是正确的,而且针对昨天的附件,我在5#写的正则完全符合你的要求。

touch_xu 发表于 2011-4-14 11:15:16

先谢afan,昨天的是可以,请帮帮改下,因为golden id和下面一组的相对位置是不固定,我想独立获取这四个值,相互不受影响,后面三个可以一起获得了,多谢,因为正则这样简练的代码,我实在不会改

touch_xu 发表于 2011-4-14 11:19:25

下次发帖一定会一次说清楚的,不耽误大家犬多时间,谢谢各位

afan 发表于 2011-4-14 11:20:16

先贴出附件吧~

love5173 发表于 2011-4-14 12:30:05

回复 22# touch_xu
所谓的不固定那个出现的位置会跟下面的东西颠倒吗,只要能在上面出现 就可以用一句代码搞定 不是的话要稍微复杂点

love5173 发表于 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 一定在上面出现的例子吧

touch_xu 发表于 2011-4-14 19:02:30

本帖最后由 touch_xu 于 2011-4-14 19:10 编辑

回复 25# love5173

呵呵,不好意思,刚才看到你的签名:“有正则问题可以找我”我测试了,是提取不到啊
我又上传了附件,麻烦帮试下
---------- ------ ------------------
NVM 01234         220C2A9A24    Pass
--------------------------------------------------
Tilt and Rotation
   Items       Limits    MeasuredResults
--------- ------------- ---------------
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在一起了,这样方便判读错误,谢谢

love5173 发表于 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 后面内容跟你在网站写的怎么格式有冲突?带个空格是你自己弄的?

afan 发表于 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+

love5173 发表于 2011-4-14 20:16:25

回复 28# afan
大叔,我现在也没看出\H跟^\h有什么区别,是他的说明文件不对还是我中文太差
\H---任何不是水平的空白字符
到底是空白还是非空白

afan 发表于 2011-4-14 20:21:11

回复 29# love5173


    区别就是 \H 比 [^\h] 少3个字符,书写更直观、简洁,而匹配作用一样~
页: 1 [2] 3
查看完整版本: 【已解决】从复杂TXT中提取信息