1

以下から変数を照合して抽出したいと思います。{{variable:int}}

  • 変数は何でも az
  • :区切り記号です
  • intは 0 ~ 9 の整数になります

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

ありがとうございました!

4

3 に答える 3

2

貪欲ではない一致 ( .*?)が必要です。preg_replace('!\{\{(.*?):(\d)\}\}!')

于 2009-11-05T12:11:34.447 に答える
1

使用する

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

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

説明

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

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

于 2009-11-05T12:10:42.757 に答える
1

名前/値を抽出する場合は、preg_match を使用するとよいと思います。

preg_match('!\{\{(.*?):(\d)\}\}!', $string, $matches);  
$varname = $matches[1];  
$val = $matches[2];  
于 2009-11-05T12:14:59.550 に答える