ホームページ > バックエンド開発 > PHPチュートリアル > 関連する単純な質問です。PHP は通常のルールを使用して文字列で指定された形式をフィルタリングし、それを配列として定義します。

関連する単純な質問です。PHP は通常のルールを使用して文字列で指定された形式をフィルタリングし、それを配列として定義します。

WBOY
リリース: 2016-06-13 13:00:23
オリジナル
829 人が閲覧しました

简单问题,php用正则过滤字符串中指定的格式并定义成数组
格式:[英文和数字,{数字}]
例如:$str="这是一张[pic,{0}]图片,这是一条描述[desc,{2}]";

将上面字符串中的“[pic,{0}]”和“[desc,{2}]”用正则过滤出来后定义成数组,然后把中括号过滤掉,变成“pic,{0}”和“desc,{2}”。

最终想得到的结果是:
$arrStr=array();
$arrStr["[pic,{0}]"]=pic,{0};
$arrStr["[desc,{2}]"]=desc,{2};

我想要的是把字符串指定的格式取出定义成数组,然后用格式给字符串赋值,这样“$arrStr[]=pic,{0};”或“$arrStr[0]=desc,{2};”不是我想要得到的结果。

数组下标的名称就是想要根据取出的格式命名的,值的话就是用正则把中括号过滤掉得出的结果
------解决方案--------------------

$str="这是一张[pic,{0}]图片,这是一条描述[desc,{2}]";<br />
$arrStr=array();<br />
preg_replace('/\[(.+?)\]/e','$arrStr["$0"]="$1"',$str);<br />
print_r($arrStr);
ログイン後にコピー

------解决方案--------------------
$demo='/\[([a-zA-Z\d].+?),(\{\d+\})\]/e';

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート