-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タグまたはテキストを抽出し、上記の関数で「text」として割り当てる必要があります。

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 に答える