-1

我有一个响应页面,其中存在一些文本。没有属性可以基于它从响应中获取所需的文本。有人可以给我写一个代码来做同样的事情。我在这里附上了来源。

Mux isconnected
requesting...
response got
field id="0" value="0110"field id="3" value="000000"<BR>field id="4" value="000000010000"<BR>field id="6" value="000000010000"<BR>
Response - Success
<-- 0110 000326 33444489

在上面的源代码中,我想提取 [ id="0" value="0110" ],然后在接下来的测试步骤中使用 value=0100。

我有代码来拆分文本并仅使用值,如下所示

text = 'response got field id="0" value="525XXXXXXXXX66"' 
matcher = text.match(/value="(.+)"/) 
puts matcher.captures.first 

但首先我需要提取 require 标记或文本,并在上述函数中将其指定为“文本”。

4

1 回答 1

1

要提取第一个field id="0" value="0110",您可以使用此正则表达式

/(field\s+id=".+?"\s+value=".+?")/.match(yourString)[1]

并使用第一组。正则表达式中的组允许您在表达式中获取文本的特定部分,例如,使用正则表达式/ma(.+?)l/manual您将在第一组中获得“nua”,即/ma(.+?)l/.match('manual')[1]等于“nua”。

如果您想获取特定值(例如 29)的 id 并且 id 总是值之前,请执行此操作

str=29
myResult = /field\s+id="#{str}"\s+value="(.+?)"/.match(yourString)[1]

value\1组中(即[1]),因此myResult包含您需要的数字。当然你可以在 str 中放任何东西。

另请看这里,这是您需要的正则表达式的工作示例!

编辑:

我想我已经正确回答了你的问题。你进一步的澄清要求让我觉得你错过了完成这项任务的编程背景。如果您需要了解其他任何信息,请发布另一个问题或花一些精力学习您正在使用的编程语言。这个社区(据我了解)不欢迎这种行为。

于 2012-09-24T12:49:06.700 回答