1

有人可以让我知道如何提取字段 id='2' 中存在的值,以便我可以在另一个文本字段中使用相同的值。

所以我真正想要的是从下面的标签中只获取值 525XXXXXXX01166,我需要将其传递给其他文本字段以继续测试。但在源代码中没有其他内容。我还附上了来源。

字段 id="2" 值="525xxxxxx01166"

下面是完整的源码

响应得到字段 id="0" value="0110"
field id="2" value="525XXXXXXXXX66"
field id="3" value="000000"
field id="4" value="000000010000"
field id=" 6" value="000000010000"
字段 id="7" value="0831112100"
字段 id="11" value="000213"
字段 id="32" value="550060"
字段 id="33" value="012295 "
字段 id="37" value="123453389112"
字段 id="38" value="103063"
字段 id="39" value="00"
字段 id="41" value="3333489"
字段 id="48 “价值=”F2001S92032844233333212"
field id="49" value="784"
field id="51" value="784"
field id="63" value="SUasdsdGPLA"
响应 - 成功 <-- 0110 000224 33433489

4

2 回答 2

1

这段代码:

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

给你这个结果:

525XXXXXXXXX66

遗憾的是,如果您想从多行字符串中提取所有值,则此正则表达式将无法正常工作。为此,它必须进一步修改。但是,对于您描述的场景,这已经足够了。

于 2012-08-31T12:16:50.270 回答
0

假设您在名为“t”的变量中有文本:

row = t.split("\n").detect {|v| v =~ /id\=\"2\"/}
/value\=\"(?<value>[\dX]+)/.match(row)[:value]

将返回:

"525XXXXXXXXX66"
于 2012-08-31T12:21:35.927 回答