OSX上でのバックスラッシュと¥について


正規表現のマッチが何度やってもうまくいかないことがあって調べてたら、バックスラッシュと¥でハマってた模様。
円コーディングを「UTF-8」で保存して実行した場合と、「X-MAC-JAPANESE」いわゆる日本語(Mac OS)で保存した場合で扱いが違うっぽい。

1.「バックスラッシュ」を使う

<?php
echo (preg_match('/\d/', '123')) ? 'MATCH' : 'NO MATCH';
?>
  • UTF-8で保存 → MATCH
  • 日本語(Mac OS)で保存 → NO MATCH


2.「¥」をつかう

<?php
echo (preg_match('/¥d/', '123')) ? 'MATCH' : 'NO MATCH';
?>
  • UTF-8で保存 → NO MATCH
  • 日本語(Mac OS)で保存 → MATCH