[PHP-users 35041] Re: mb_ereg と preg_match の動作の違い
石田 武士
ishida.tak @ gmail.com
2010年 3月 2日 (火) 19:46:25 JST
石田です。
あまり深く考えてはいないのですが、以下のような感じでどうでしょう?
preg_match_all( "#'(.*?)'#",
"f('ゆぴ','-','(-11,-425)','ゆぴ','★','12.73','1','0','0','0','')", $tmp )
&& var_dump( $tmp[1] );
パターンをいくつか通して、調整はしなきゃ駄目でしょうが。
On Tue, 02 Mar 2010 19:32:22 +0900, <shige02 @ mac.com> wrote:
> 石田さん、ミワさん、ありがとうございます。
>
> mb_regex_encoding も指定しないといけなかったんですね。
> 今回原因が分からなくて、preg
> で凌いだんですが、コードを書くのは久しぶりで、見落としていました。
>
> データの中には、 ,, という風に空がありまして、PREG_SPLIT_NO_EMPTY
> だと、それが欠落してしまいます。
> 具体的なデータは、JavaScript の関数呼びだし部分で、実際には、
>
> f('ゆぴ','-','(-11,-425)','ゆぴ','★','12.73','1','0','0','0','');
>
> のような構成になっていてます。
>
> /^.+?\('|','|'\);.+$/ で切っています。
>
> '' の中に、'自身がはいることはありません。
>
>
> On Mar 2, 2010, at 6:55 PM, Eiji Miwa wrote:
>
>>
>> ミワです。
>>
>> On 2010/03/02, at 18:36, shige02 @ mac.com wrote:
>>>
>>> という風に、preg_match は期待通り、mb_ereg が期待と異なる動作をします。
>>
>> mb_regex_encoding('UTF-8') としてやるとよいです。
>> http://www.php.net/manual/ja/function.mb-regex-encoding.php
>>
>> split はこんな感じで。
>> var_dump(preg_split('/[<,>]/', '<1,2,3>', 0, PREG_SPLIT_NO_EMPTY));
>>
>> --
>> miwa at offside.ne.jp
>>
>> _______________________________________________
>> PHP-users mailing list PHP-users @ php.gr.jp
>> http://ml.php.gr.jp/mailman/listinfo/php-users
>> PHP初心者のためのページ - 質問する前にはこちらをお読みください
>> http://oldwww.php.gr.jp/php/novice.php3
>
--
Opera の革新的メールクライアント: http://jp.opera.com/mail/
PHP-users メーリングリストの案内