我正在研究這個正則表達式,我在preg_replace中使用這個正則表達式來圍繞它添加divs
和/divs
圍繞文本的周圍*
。它現在使用兩個*
s。這將是一個肯定的方式只有一個*
正則表達式使用一個*而不是兩個
當前
<?php
$errors = 1;
$arr['ERR'] = '';
$arr['ERR'] .= '*<i>Error 1</i>*';
$arr['ERR'] .= '*<i>Error 2</i>*';
$arr['ERR'] .= '*<i>Error 3</i>*';
$arr['ERR'] .= '*<i>Error 4</i>*';
$arr['ERR'] .= '*<i>Error 5</i>*';
$arr['TOF'] = 'Success';
$arr = preg_replace('#\*(.+?)\*#', '<div>$1</div>', $arr);
print_r($arr);
// output
array (
[ERR] => <div><i>Error 1</i></div><div><i>Error 2</i></div><div><i>Error 3</i></div><div><i>Error 4</i></div><div><i>Error 5</i></div>
[TOF] => Success
)
?>
試圖
$arr['ERR'] = '';
$arr['ERR'] .= '*<i>Error 1</i>';
$arr['ERR'] .= '*<i>Error 2</i>';
$arr['ERR'] .= '*<i>Error 3</i>';
$arr['ERR'] .= '*<i>Error 4</i>';
$arr['ERR'] .= '*<i>Error 5</i>';
$arr['TOF'] = 'Success';
$arr = preg_replace('#\*(.+?)#', '<div>$1</div>', $arr);
//just one * but get the same results as above.
怎麼能正則表達式來完成只使用一個*
那麼'* 錯誤1*i>'?如果你正在嘗試做這樣的事情,你不應該寫一個有一些檢查/驗證的解析器嗎? IE瀏覽器。簡單的RegEx像這樣*假設**沒有**錯誤*。 – tenub 2014-09-18 16:24:45