не могу заставить регулярное выражение работать, как я хочу - PullRequest
0 голосов
/ 11 апреля 2010

С помощью этой функции:

function bbcode_parse($str) {
$str = htmlentities($str);

$find = array(  
    '/\\*\*(.[^*]*)\*\*/is',
);

$replace = array(
    '<b>' 
);

$str = preg_replace($find, $replace, $str);  

return $str;
}

и с текстом "My name is **bob**"

Я получаю в исходном коде Hi my name is <b>

Пытался заставить это работать некоторое время.

Хотелось бы получить помощь специалиста:)

Ответы [ 2 ]

2 голосов
/ 11 апреля 2010

(В bbcode жирный текст выделен [b]xxx[/b], а не **xxx**.)

В PHP вы можете использовать $1 для представления захваченной подгруппы, поэтому ваша замена должна быть

'<b>$1</b>'
0 голосов
/ 11 апреля 2010

Попробуйте использовать это:

preg_replace("/.*\*{2}(.+?)\*{2}.*/", "<b>$1</b>", "My name is **bob**");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...