0

次のような要素を取得しました。

<span class="narrowValue">&nbsp;(15,728)</span>

私はこのようにスクレイピングしています:

  @department_hash = Hash.new {|h,k| h[k]=[]}
  department.css('.narrowValue').each do | department |
    @department_hash["department"] << department.text
  end 

そして、次のような結果が得られます。

{"department"=>[" (15,725)", " (243,256)", " (510,337)", " (46,002)", " (14,109)", " (358)", " (5,787)", " (19,818)"]}

しかし、括弧は必要ありません。

数字だけを取得するにはどうすればよいですか?

4

3 に答える 3

1

テキストを配列にプッシュする前に、括弧を取り除きます。

@department_hash = Hash.new {|h,k| h[k]=[]}
department.css('.narrowValue').each do | department |
  @department_hash["department"] << department.text.gsub(/^[() \u00a0]+|[() \u00a0]+$/, '')
end

または、次の正規表現を使用できます。

/^[()[:space:]]+|[()[:space:]]+$/

[[:space:]]nbsp と一致しますが、nbsp と\sは一致しません。

于 2013-08-12T05:27:55.687 に答える
1

次の変更を使用します。

@department_hash["department"] << department.text.gsub(/[^\d,]/,"")
于 2013-08-12T05:28:41.820 に答える