PHP正則解析多重ループテンプレート例
1850 ワード
本例ではPHP正則解析多重ループテンプレートについて述べる.皆さんの参考にしてください.具体的には以下の通りです.
$str = " , :(crm{ 2: } (crm{ 3: }crm) crm) (crm{ 1: }crm)";
$start = '(crm'; //
$end = 'crm)'; //
// , , '\'
$need_escape = array('^', '$', '(', ')', '.', '[', ']', '|', '*', '?', '+', '/', '{', '}');
foreach($need_escape as $val)
{
if(strpos($start, $val) !== FALSE)//
{
$escape = '\\'.$val;
$start = str_replace($val, $escape, $start);
}
if(strpos($end, $val) !== FALSE)//
{
$escape = '\\'.$val;
$end = str_replace($val, $escape, $end);
}
}
/*----------------------------------
* 【 】 【 】
* 【 】:
* 【 】: ( 、 )
* ---------------------------------*/
//$pattern = '/\(crm((?!\(crm).)+crm\)/U';
$pattern = '/'.$start.'((?!'.$start.').)+'.$end.'/U';
preg_match_all($pattern, $str, $matches);
echo "";
print_r($matches);
echo "
";
:
Array([0]=>Array([0]=>(crm{プロジェクト3:プロジェクト }crm)[1]=>(crm{プロジェクト1:プロジェクト }crm)[1]=>Array([0]=>}[1]=>})
PS:ここでは、 に な ツールを2つ します.
JavaScript オンラインテストツール:http://tools.jb51.net/regex/javascript
オンライン ツール:http://tools.jb51.net/regex/create_reg
PHPに する について のある は、「php 」、「phpプログラム 」、「php フィルタ 」、「PHP (Array) 」、「PHP 」、「php (string) 」および「php+mysqlデータベース 」を してください.
ここで べたことが さんのPHPプログラム に つことを っています.