以下から変数を照合して抽出したいと思います。{{variable:int}}
- 変数は何でも az
- :区切り記号です
- intは 0 ~ 9 の整数になります
現在私は持っています:preg_replace('!\{\{(\S+)\}\}!', "$1", $string)
これは仕事の半分しか行いませんが、まだ分割する必要があり:
ます。
ありがとうございました!
以下から変数を照合して抽出したいと思います。{{variable:int}}
現在私は持っています:preg_replace('!\{\{(\S+)\}\}!', "$1", $string)
これは仕事の半分しか行いませんが、まだ分割する必要があり:
ます。
ありがとうございました!
貪欲ではない一致 ( .*?
)が必要です。preg_replace('!\{\{(.*?):(\d)\}\}!')
使用する
{{([a-zA-Z]+):(\d+)}}
$1 にはキャプチャされた変数が含まれ、$2 にはキャプチャされた整数が含まれます。
説明
{{([a-zA-Z])+:(\d+)}}
[a-zA-Z]+ は、少なくとも 1 つ以上のアルファベット (小文字または大文字)
の後に「:」
が続き、その後に少なくとも 1 つ以上の数字 (0-9) が続くことを意味します。
名前/値を抽出する場合は、preg_match を使用するとよいと思います。
preg_match('!\{\{(.*?):(\d)\}\}!', $string, $matches);
$varname = $matches[1];
$val = $matches[2];