src/Peach/Util/Strings.php
public static function getRawIndex($text, $chr)
    {
        $chr     = str_replace("\\", "\\\\", $chr);
        $pattern = "/(?<!\\\\)(?:\\\\\\\\)*(" . $chr . ".*)$/";
        $result  = array();
        preg_match($pattern, $text, $result);
        if (count($result)) {
            return strlen($text) - strlen($result[1]);
        } else {
            return false;
        }
    }
public static function getRawIndex($text, $chr)
    {
        $chr     = str_replace("\\", "\\\\", $chr);
        $pattern = "/(?<!\\\\)(?:\\\\\\\\)*(" . $chr . ".*)$/";
        $result  = array();
        preg_match($pattern, $text, $result);
        if (count($result)) {
            return strlen($text) - strlen($result[1]);
        } else {
            return false;
        }
    }
public static function getRawIndex ( $ text , $ chr ) { $ chr = str_replace ( "\\" , "\\\\" , $ chr ) ; $ pattern = "/(?<!\\\\)(?:\\\\\\\\)*(" . $ chr . ".*)$/" ; $ result = array ( ) ; preg_match ( $ pattern , $ text , $ result ) ; if ( count ( $ result ) ) { return strlen ( $ text ) - strlen ( $ result [ 1 ] ) ; } else { return false ; } }
指定された文字列の中で、"\" によるエスケープ処理のされていない文字列があらわれる
最初のインデックスを返します.
偶数個の "\" が続いた後に対象の文字列が出現した場合に、そのインデックスを返り値とします.
奇数個の "\" の後の文字については, その直前の "\" によってエスケープされているとみなして
スルーします. 以下に例を示します.

<pre>
getRawIndex("AB=CD=EF", "=")     => 2
getRawIndex("AB\\=CD=EF", "=")   => 6
getRawIndex("AB\\\\=CD=EF", "=") => 4
</pre>

インデックスが存在しない場合は FALSE を返します.

@param  string $text 検索文字列
@param  string $chr  検索対象の文字
@return int          インデックス. ただし存在しない場合は FALSE
指定された文字列の中で、 \ によるエスケープ処理のされていない文字列があらわれる 最初のインデックスを返します . 偶数個の \ が続いた後に対象の文字列が出現した場合に、そのインデックスを返り値とします . 奇数個の \ の後の文字については その直前の \ によってエスケープされているとみなして スルーします . 以下に例を示します .