QA@IT
«回答へ戻る

回答を投稿

PHP 5.4.4、「mbstring.internal_encoding => UTF-8」の環境で下記のコードを使ってテストしてみました。(ファイルの文字コードはUTF-8、改行コードはLFです)

<?php
// 正規表現パターン
$pattern = '/^.*[0-90-9]/';

$tmp[1]="テスト";   // 末尾数字無し
$tmp[2]="テスト1";  // 末尾半角数字
$tmp[3]="テスト1"; // 末尾全角数字

foreach( $tmp as $dat )
{
    echo $dat . '=>' . preg_match($pattern, $dat) . "\n";
}

手元の環境で実行すると、下記のようになるので要件は満たしているかと思います。

$ php ./test.php
テスト=>0
テスト1=>1
テスト1=>1

半角数字と全角数字の区別を無視して良いなら、$tmp = mb_convert_kana( $target, 'as', 'UTF-8');のようにして、半角に統一してからチェックするというのも悪くないかもしれません。

PHP 5.4.4、「mbstring.internal_encoding => UTF-8」の環境で下記のコードを使ってテストしてみました。(ファイルの文字コードはUTF-8、改行コードはLFです)

```php
<?php
// 正規表現パターン
$pattern = '/^.*[0-90-9]/';

$tmp[1]="テスト";   // 末尾数字無し
$tmp[2]="テスト1";  // 末尾半角数字
$tmp[3]="テスト1"; // 末尾全角数字

foreach( $tmp as $dat )
{
    echo $dat . '=>' . preg_match($pattern, $dat) . "\n";
}
```

手元の環境で実行すると、下記のようになるので要件は満たしているかと思います。

```bash
$ php ./test.php
テスト=>0
テスト1=>1
テスト1=>1
```

半角数字と全角数字の区別を無視して良いなら、[$tmp = mb_convert_kana( $target, 'as', 'UTF-8');](http://jp2.php.net/manual/ja/function.mb-convert-kana.php)のようにして、半角に統一してからチェックするというのも悪くないかもしれません。