1

別のテキスト フィールドで同じ値を使用できるように、フィールド id='2' に存在する値を抽出する方法を教えてください。

したがって、私が正確に望むのは、テストを続行するために他のテキストフィールドに渡す必要がある以下のタグから値 525XXXXXXX01166 のみを取得することです。しかし、ソースには他に何もありません。ソースも貼っておきます。

フィールド ID="2" 値="525xxxxxx01166"

以下は完全なソースです

応答は、フィールド id="0" 値="0110"
フィールド id="2" 値="525XXXXXXXXX66"
フィールド id="3" 値="000000"
フィールド id="4" 値="000000010000"
フィールド id=" 6" value="000000010000"
field id="7" value="0831112100"
field id="11" value="000213"
field id="32" value="550060"
field id="33" value="012295 "
field id="37" value="123453389112"
field id="38" value="103063"
field id="39" value="00"
field id="41" value="3333489"
field 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 に答える