RegEx использовать только один * вместо двух

Я работал над этим регулярным выражением, которое я использую в 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 );
// outputarray (
[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.

Как можно сделать регулярное выражение, чтобы использовать только один *

-2

Решение

Вы можете использовать это регулярное выражение:

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

Смотритель утверждает, что матч перед другой звездой или в конце матча.

Вот regex demo.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]