如何提取ruby watir中没有任何属性的值

时间:2012-09-24 12:13:58

标签: html ruby regex text watir

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

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 =&#34; 0&#34;值=&#34; 0110&#34; ] 然后在下一个测试步骤中使用value = 0100。

我有分割文本的代码,只使用如下所示的值

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

但首先我需要提取require标签或文本并将其指定为&#39; text&#39;在上面的功能。

1 个答案:

答案 0 :(得分:1)

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

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

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

如果您想获取特定值的ID(例如29),并且ID 值之前始终为,请执行此操作

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

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

另外看here,这是你需要的正则表达式的一个有效例子!

修改

我想我已经正确回答了你的问题。您进一步要求澄清使我认为您错过了完成此任务的编程背景。如果您还需要了解其他内容,请发布其他问题或花一些时间学习您正在使用的编程语言。这个社区(据我所知)并不欢迎这种行为。