[PHP-users 24893] Re: preg_splitについて

寺澤卓馬/Takuma Terazawa terazawa-lucky05 @ triton.ocn.ne.jp
2005年 3月 15日 (火) 21:00:11 JST


----- Original Message ----- 
From: "Eiji Miwa" <miwa @ offside.ne.jp>
To: "PHP-users ML" <php-users @ php.gr.jp>
Sent: Tuesday, March 15, 2005 8:46 PM
Subject: [PHP-users 24890] Re: preg_splitについて


>
>  ミワです。
>
> On 2005年 3月 15日 , at 08:20 PM, 寺澤卓馬/Takuma Terazawa wrote:
>>
>>> $dats = preg_split('/(?<!\\),/', $dat);
>> これやっぱり動きませんよね・・・
>> 構文的には間違ってないはずなんですが・・・
>>
>> これ、PHP固有のバグのようです・・・・(恐らく
>
>  こうすればできますよ。
>
>  $dats = preg_split ( '/(?<!\\\\),/', $dat );
\\\\で確認しました。

でもなんかおかしくありませんか?
Perlでは\\ですし。
5.8.4ですが。
普通のパターンマッチでは\\でいいみたいですし。

-----------------------------------------------------------
例えば、"*" 文字にマッチさせたい場合、パターンに "\*" を書きます。 これにより、次の文字がメタ文字として解釈されようとされまいと、 "\" を伴った英字でない文字が、その文字自体を表 
すことを保証します。 特に、バックスラッシュにマッチさせたい場合は、"\\" と書きます。
引用: http://jp2.php.net/manual/ja/pcre.pattern.syntax.php
----------------------------------------------------------- 
上の通りであるとしたら
<?php
 $dat = 'ab,cd,ef\,gh';
 $dats = preg_split('/\\/', $dat);
 print_r($dats);
?>
でいいはずじゃないでしょうか?
(上記のものはエラーです。)
(下記のものは正常に動きます。)
<?php
 $dat = 'ab,cd,ef\,gh';
 $dats = preg_split('/\\\\/', $dat);
 print_r($dats);
?>



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