Nokogiri で HTML ドキュメントを解析する次のコードがあります。
td.next_element.text.scan(/\A[^(]+/).first.gsub(/\s+/, " ").strip
何もキャッチしないcase正規表現を含むステートメントもあります。\s+を使用しようとしましたstripが、何もしませんでした。
上記の行でテストした後gsub、空白のエンコード方法に問題があることがわかりました。td.next_element.text[-2].ord期待していた 32 ではなく 160 が返されました。ドキュメントが ASCII ではなく UTF-8 であり、160 は非改行スペースであることに気付きました。
私はこれを行うことができるはずです、私は考えました:
case td.text.strip.downcase.gsub(/\xA0|\xC2/, ' ')
問題は、私が得る
Encoding::CompatibilityError
(incompatible encoding regexp match (ASCII-8BIT regexp with UTF-8 string)):
私は何をしますか?また、正規表現は ASCII だけでなく、すべての空白に一致するはずではありませんか?