[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 メーリングリストの案内