質問
次の変数を照合して抽出したいと考えています。 {{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) が続きます
所属していません StackOverflow