RegEx只使用一个*而不是两个

时间:2014-09-18 16:19:27

标签: php regex preg-replace

我正在处理这个我在preg_replace中使用的正则表达式,在divs周围添加/divs*。它现在使用两个*。只用一个*

可以做到这一点

当前

<?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 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式:

\*(.+?)(?![^*])

前瞻声称比赛在另一个明星之前或在比赛结束时。

这是regex demo