- ベストアンサー
変数の先頭一行を削除するにはどうしたら良いでしょうか?
$a = "aaaaaaaaaaaaaaaaaaaaaaa\r\n bbbbbbbbbbb\r\n ccccccccccc\r\n "; echo ereg_replace('^(.+)\r\n', '', $a); では駄目でした。。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
正規表現を使わない方法として list (, $a) = explode("\r\n", $a, 2); というのもできます。 あと $a = "aaaaaaaaaaaaaaaaaaaaaaa\r\n bbbbbbbbbbb\r\n ccccccccccc\r\n "; は $a = "aaaaaaaaaaaaaaaaaaaaaaa\r\nbbbbbbbbbbb\r\nccccccccccc\r\n"; か $a = "aaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbb ccccccccccc "; のどちらかでよいのではないでしょうか(改行が2重になります)。 後者の場合はエディタによって改行コードを設定しないと\nだけになったりする可能性もありますが。
その他の回答 (3)
- satoh
- ベストアンサー率77% (17/22)
echo ereg_replace("^[^\r\n]+\r\n", '', $a); でいけそうです(文字列中に単独の\rや\nが無い場合)。一番の違いは'でなく"なところでしょうか。 あと、正規表現は最長一致(出来るだけ長い文字列と一致するようにする)が基本なので、.+だと途中に改行があっても最後の改行の手前まで全部、になってしまいます。 それと少し気になったのですが $a = "aaaaaaaaaaaaaaaaaaaaaaa\r\n bbbbbbbbbbb\r\n ccccccccccc\r\n "; ではなく $a = "aaaaaaaaaaaaaaaaaaaaaaa\r\nbbbbbbbbbbb\r\nccccccccccc\r\n"; ではないでしょうか。 ""の中で\r\nを指定するなら途中で改行しちゃダメではありませんか?(もしくは改行して\r\nを書かない) ちなみに、改行はWindows(DOS)では\r\nですが、Macは\r(最近は\nかも)、LinuxなどのUnix系は\nだったりしますので、一般向けに公開されるなら注意が必要かと思います。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
echo preg_replace("/^.*?\r\n/", "", $a); とか
- fire--
- ベストアンサー率49% (146/293)
echo ereg_replace("^[^\r\n]+\r\n", "", $a); で、どうでしょう? '=>" .=>[^\r\n] です。