• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:指定した位置で文字列を分けたい)

指定した位置で文字列を分ける方法

このQ&Aのポイント
  • 文字列を指定した位置で分ける方法について教えてください。
  • 例えば、文字列 'a/bb/cccc/d/e' があり、前から3つ目の'/'で文字列を分けたい場合、どのようなやり方がありますか?
  • 結果的に、'a/bb/cccc' と 'd/e' の2つの文字列に分けることができれば良いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • suzuki-_-
  • ベストアンサー率77% (152/195)
回答No.1

正規表現の使える preg_split を利用してみてはいかがでしょうか <?php $mojiretu = 'a/bb/cccc/d/e'; $arr = preg_split("#^([^/]*/[^/]*/[^/]*)/#",$mojiretu,-1,PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE); print_r ($arr) ;// Array ( [0] => a/bb/cccc [1] => d/e ) ?> ^([^/]*/[^/]*/[^/]*)/ 部分の正規表現パターンで区切ります 'a/bb/cccc/d/e' で上記に当てはまるのは、わかりやすく括弧もつけると '(a/bb/cccc)/' の部分です 前から3つ目の'/'を表すために、前から3つ目の'/'までの全てを 区切りとして指定することになります ただこれだけで区切り終えてしまうと ''(空文字) と 'd/e' になってしまいます そこで、PREG_SPLIT_DELIM_CAPTURE フラグを付けて、 正規表現で括弧内部分にマッチした内容も返すようにしています そうすると、''(空文字) と 'a/bb/cccc' と 'd/e' に分けられます 空文字が邪魔なので、PREG_SPLIT_NO_EMPTY フラグを使い 空文字は返さないようにして前途記述のできあがりです 詳しくは下記を参照してください - preg_split http://au.php.net/manual/ja/function.preg-split.php - パターン構文 http://au.php.net/manual/ja/reference.pcre.pattern.syntax.php

takagoo100
質問者

お礼

ご返答ありがとうございます。 そのやり方でできました。ありがとうございます。

関連するQ&A

専門家に質問してみよう