十分に正常に見える文字列(違いがある場合はMySQLデータベースから取得)があります:
Manufacture: <a href="http://www.x.com/">Blah</a>
問題は、Manufacture:
と<a>
タグの間のスペースが、予想どおり 32 ではなく、194 の文字コードを持っていることです。
これpreg_match
により、次のパターンの が失敗します (正規表現を使用して HTML を解析しようとする試みは無視してください。良い考えではないことはわかっていますが、この特定のデータセットは十分に予測可能であり、回避できます):
/Manufacture: *(<a[^>]*>([A-Za-z- 0-9]+)<\/a>)/i
テキスト エディターで不正なスペースを通常のスペース文字に置き換えて再試行すると、式は期待どおりに一致しますが、プログラムで変更する必要があります。
私が試したstr_replace
:
$text = str_replace(chr(194), ' ', $text);
しかし、preg_match
それでも失敗します。私はそれから試しましたpreg_replace
:
$text = preg_replace('/[\xC2]/', ' ', $text);
しかし、同じパターンを実行すると予想される一致が含まれpreg_match
ていても、それも機能しません。
誰にもアイデアはありますか?