从PHP中的文本正文中捕获一些文本

时间:2015-05-23 17:23:46

标签: php regex

我建立SSH连接并阅读下面的内容,但我想使用一些返回的数据。

数据:(样本1)

DSL3> 7[600C[300B[6n8show lineinfo 1-2
slot-port=1-2, DSL line info
link                    : link_up
service type            : adsl2plus
coding mode             : Concatenated (trellis and RS) coding
us interleave delay(ms) : 0 ms
ds interleave delay(ms) : 0 ms
us inp(DMT Symbol)      : 0.0
ds inp(DMT Symbol)      : 0.0
us output power(dBm)    : 12.2
ds output power(dBm)    : 18.9
country code            : 00b5
provider code           : 5245544b("RETK")
DSL3> 

数据:(样本2)

DSL3> 7[600C[300B[6n8show lineinfo 1-3
slot-port=1-3, DSL line info
link                    : link_up
service type            : adsl2plus
coding mode             : Concatenated (trellis and RS) coding
us interleave delay(ms) : 0 ms
ds interleave delay(ms) : 0 ms
us inp(DMT Symbol)      : 0.0
ds inp(DMT Symbol)      : 0.0
us output power(dBm)    : 12.3
ds output power(dBm)    : 18.6
country code            : 0026
provider code           : 5443544e("TCTN")
DSL3> 

数据:(示例3)

DSL3> 7[600C[300B[6n8show lineinfo 1-8
slot-port=1-8, DSL line info
link                    : link_down
service type            : none
coding mode             : No coding
us interleave delay(ms) : 0 ms
ds interleave delay(ms) : 0 ms
us inp(DMT Symbol)      : 0.6
ds inp(DMT Symbol)      : 0.0
us output power(dBm)    : 0.0
ds output power(dBm)    : 0.0
country code            : N/A
provider code           : N/A
DSL3> 

第2行到3点 我想从返回的值中提取linkservice typeus output power(dBm)的状态。

我试着通过正则表达式来做但没有完成。

1 个答案:

答案 0 :(得分:1)

您可以使用以下正则表达式:

link\s*:\s*(.*)|service type\s*:\s*(.*)|us output power\(dBm\)\s*:\s*(.*)

并使用link提取$1service type提取$2us output power(dBm)提取$3

请参阅DEMO