[PHP-users 35037] mb_ereg と preg_match の動作の違い

shige02 @ mac.com shige02 @ mac.com
2010年 3月 2日 (火) 18:36:54 JST


こんにちは。重松です。

$ cat x.php 
<?php

mb_internal_encoding('UTF-8');

var_dump(mb_internal_encoding());

$smk = '沙摩柯';
$smk2 = '沙摩柯しゃまかあいうえお';

var_dump(preg_match("/$smk/", $smk2));

var_dump(mb_ereg($smk, $smk2));

?>

で、

$ php x.php 
string(5) "UTF-8"
int(1)
bool(false)

という風に、preg_match は期待通り、mb_ereg が期待と異なる動作をします。
念のため、
$ nkf -w --overwrite x.php
として見ましたが、結果は同じ。
何か勘違いしているのでしょうか?

Mac OS X 10.6.2 です。
$ php -v
PHP 5.3.0 (cli) (built: Jul 19 2009 00:34:29) 
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies
それと、'<1,2,3>' から 1 2 3 それぞれが入った配列にしたいのですが、split('<1,2,3>', '[<>,]') だと、頭と最後に空の余計なものが入ってしまうわけですが、一発で、1 2 3 と切るにはどうすればいいんでしょうか?

よろしくお願いいたします。

-- 
Osamu Shigematsu



PHP-users メーリングリストの案内