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 だけでなく、すべての空白に一致するはずではありませんか?