質問

次の変数を照合して抽出したいと考えています。 {{variable:int}}

  • 変数 何でもいいでしょう
  • : 区切り文字です
  • 整数 0 ~ 9 の整数になります

現在、私は次のものを持っています: preg_replace('!\{\{(\S+)\}\}!', "$1", $string)これでは仕事の半分しか行われませんが、まだ分割する必要があります :.

ありがとう!

役に立ちましたか?

解決

あなたが名前/値を抽出したい場合は、

、私はあなたがするpreg_matchを使用したいと考えています。

preg_match('!\{\{(.*?):(\d)\}\}!', $string, $matches);  
$varname = $matches[1];  
$val = $matches[2];  

他のヒント

あなたは非貪欲のマッチ(.*?)が必要です。 preg_replace('!\{\{(.*?):(\d)\}\}!')

使用

{{([a-zA-Z]+):(\d+)}}

$1 にはキャプチャされた変数が含まれ、$2 にはキャプチャされた整数が含まれます

説明

{{([a-zA-Z])+:(\d+)}}

[a-zA-Z]+ は、少なくとも 1 つ以上のアルファベット (小文字または大文字) を意味します
続いて「:」
その後に少なくとも 1 つ以上の数字 (0 ~ 9) が続きます

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top