半角空白と思ったら  (NBSP) になっていてマッチングしなかった
HTML を PHP の XMLパーサでパースして、タグを strip_tags で取り除いてできた文字列が
Top > カテゴリ1 > カテゴリ2
のようなものだとして、これを「 > 」で分割しようと Ruby で split に正規表現を書いてみたのだけど、なぜかマッチングしない。
str.split(/\s+>\s+/)
よくよく元のHTMLを調べてみると、半角スペースかと思っていたところが実は だった。
Top > カテゴリ1 > カテゴリ2
これをXMLパーサでパースすると、どうやら は NBSP という半角空白とは違う ASCII 文字として処理されるらしい。UTF-8だと ASCII コードは \xc2\xa0 となるみたい。なので、
str.split(/(\xc2\xa0)+>(\xc2\xa0)+/)
とすると期待通りに分割できた。
コメントを残す