1

サーバーへのリクエストを開いてJavaScript出力を取得するスクリプトがあります。

この出力は次のようになります。

html = new Array();mark = new Array();html.push('html タグ (欲しいもの)もっと html');mark.push(new Obj(-12.1231231, -12.12312312312));html.push( 'html タグ (欲しいもの)もっと html');mark.push(新しい Obj(-12.1231231, -12.12312312312));html.push('html タグ (欲しいもの)もっと html');mark.push(new Obj(-12.1231231, -12.12312312312));html.push('html タグ (欲しいもの)もっと html');mark.push(新しい Obj(-12.1231231, -12.12312312312));html.push('html タグ(何か欲しい)もっと html');mark.push(new Obj(-12.1231231, -12.12312312312));OtherStuf.idontcare(new Object(-16.630495852614, -49.264667191591), 13);

(something i want)すべてを取り込む正規表現を作成したいnew Obj(-12.1231231, -12.12312312312)ので、この部分では:

html.push('html タグ (欲しいもの)もっと html');mark.push(new Obj(-12.1231231, -12.12312312312))

私は取得したい:

(something i want)
-12.1231231
-12.12312312312

しかし、これは私がこれを見つけたすべての場所で。

すべての内部コンテンツを取得するためにこの正規表現を作成しました

/^html = new Array\(\);mark = new Array\(\);(.*)OtherStuf.idontcare\(new Object\([\+\-\.0-9]*, [\+\-\.0-9]*\), [\d]*\);$/

しかし今、私はちょっと立ち往生しています。必要な情報を取得する方法がわかりません。

これどうやってするの?

私の正規表現と解析する必要がある JavaScript の例の要点: https://gist.github.com/NicosKaralis/5571240

4

1 に答える 1

0

単一の正規表現では、あなたが望むものを処理できません。

最初にブロックに分割してから、それぞれに対して正規表現を実行することをお勧めします。

output.split(/html\.push/).each do |block|
  # grab "something i want" and the numbers in block
end
于 2015-03-11T20:40:43.707 に答える