-1
\"43STX4P-2-2-C1::TRCCMP=DISABLED,J0_EX=\"\",J0_FMT=16,J0_INC=\"??????????????
?\",J0_STAT=UNSPECIFIED,MAPPINGMODE=ASYNC,CHANNEL=NONE,MODULETYPE=XS-64.2B,AINST
MR=00-10,AINSCNTDWN=00-00,LOSPROP=LASERON,AINSREF=SYSTEM,RXPOWER=-99.00,TXPOWER=
0.69,DESCR=\"\":OOS-AUMA,FAF&MT\"
   "43STX4P-2-2-C2::TRCCMP=DISABLED,J0_EX=\"\",J0_FMT=16,J0_INC=\"??????????????
?\",J0_STAT=UNSPECIFIED,MAPPINGMODE=ASYNC,CHANNEL=1550,MODULETYPE=XS-64.2B,AINST
MR=00-10,AINSCNTDWN=00-00,LOSPROP=LASERON,AINSREF=SYSTEM,RXPOWER=-99.00,TXPOWER=
-99.00,DESCR=\"\":OOS-AUMA,FAF"
   \"43STX4P-2-2-C3::TRCCMP=DISABLED,J0_EX=\"\",J0_FMT=16,J0_INC=\"??????????????
?\",J0_STAT=UNSPECIFIED,MAPPINGMODE=ASYNC,CHANNEL=1550,MODULETYPE=XS-64.2B,AINST
MR=00-10,AINSCNTDWN=00-00,LOSPROP=LASERON,AINSREF=SYSTEM,RXPOWER=-99.00,TXPOWER=
-99.00,DESCR=\"\":OOS-AUMA,FAF"
   "43STX4P-2-2-C4::TRCCMP=DISABLED,J0_EX=\"\",J0_FMT=16,J0_INC=\"??????????????
?\",J0_STAT=UNSPECIFIED,MAPPINGMODE=ASYNC,CHANNEL=1550,MODULETYPE=XS-64.2B,AINST
MR=00-10,AINSCNTDWN=00-00,LOSPROP=LASERON,AINSREF=SYSTEM,RXPOWER=-99.00,TXPOWER=
-99.00,DESCR=\"\":OOS-AUMA,FAF"
   "43STX4P-4-2-C1::TRCCMP=DISABLED,J0_EX=\"\",J0_FMT=16,J0_INC=\"??????????????
?\",J0_STAT=UNSPECIFIED,MAPPINGMODE=ASYNC,CHANNEL=1550,MODULETYPE=XS-64.2B,AINST
MR=00-10,AINSCNTDWN=00-00,LOSPROP=LASERON,AINSREF=SYSTEM,RXPOWER=-99.00,TXPOWER=
-99.00,DESCR=\"\":OOS-AUMA,FAF"
   "43STX4P-4-2-C2::TRCCMP=DISABLED,J0_EX=\"\",J0_FMT=16,J0_INC=\"??????????????
?\",J0_STAT=UNSPECIFIED,MAPPINGMODE=ASYNC,CHANNEL=1550,MODULETYPE=XS-64.2B,AINST
MR=00-10,AINSCNTDWN=00-00,LOSPROP=LASERON,AINSREF=SYSTEM,RXPOWER=-99.00,TXPOWER=
-99.00,DESCR=\"\":OOS-AUMA,FAF"
   "43STX4P-4-2-C3::TRCCMP=DISABLED,J0_EX=\"\",J0_FMT=16,J0_INC=\"??????????????
?\",J0_STAT=UNSPECIFIED,MAPPINGMODE=ASYNC,CHANNEL=1550,MODULETYPE=XS-64.2B,AINST
MR=00-10,AINSCNTDWN=00-00,LOSPROP=LASERON,AINSREF=SYSTEM,RXPOWER=-99.00,TXPOWER=
-99.00,DESCR=\"\":OOS-AUMA,FAF"
   "43STX4P-4-2-C4::TRCCMP=DISABLED,J0_EX=\"\",J0_FMT=16,J0_INC=\"??????????????
?\",J0_STAT=UNSPECIFIED,MAPPINGMODE=ASYNC,CHANNEL=1550,MODULETYPE=XS-64.2B,AINST
MR=00-10,AINSCNTDWN=00-00,LOSPROP=LASERON,AINSREF=SYSTEM,RXPOWER=-99.00,TXPOWER=
-99.00,DESCR=\"\":OOS-AUMA,FAF"
   /* RTRV-STM64 */

请帮我基本解析这个字符串我需要的是这部分 43STX4P-4-2-C4 我想提取像 43STX4P-4-2-C1 43STX4P-4-2-C2 43STX4P-4-2-C3 这样的字符串稍后在命令中的变量中使用请帮助我我尝试了一切

编辑 r00t 解决方案效果很好,但字符串中可能并不总是 43STX4P 它可能看起来像 130SCX10- 43SCX4L- 43SCX4-

另一个注意事项是 43STX4P-2-2-C3 .. -2-2 中的数字可能并不总是单个数字

编辑

这是我在网上研究和一些运气后得到的

set ports [regexp -inline -all {\w*-.-[0-9]+-C[0-9]+} $rawoutput]

告诉我我的代码是否有任何缺陷非常感谢您的帮助!

4

2 回答 2

0

Expect 可以用正则表达式匹配部分字符串,并使匹配特定子表达式的部分可用于脚本,如下所示:

expect {
    -re {[""]([\dA-Z]+-\d+-\d+-C\d+)::} {
        set id $expect_out(1,string)
    }
}

现在,您要查找的值在方便的变量$id中。或者由于超时或 EOF 而出现错误。你仍然需要弄清楚其余的代码......</p>

[""]是一个使语法突出显示工作的 RE 技巧。与RE 引擎相同"

于 2013-07-29T12:39:05.663 回答
0
set result [regexp -all -inline {43STX4P-4-2-C.} $data]

稍后你可以索引你需要的数据;)

于 2013-07-29T12:40:58.740 回答