2010-04-11 4 views
0

С помощью этой функции:не могу получить регулярное выражение для работы, как я хочу

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>

пытался получить эту работу для сейчас.

appricate бы некоторые квалифицированную помощь :)

+0

Возможно, лучший заголовок в следующий раз –

+0

не мог подумать о лучшем, предложите лучший, и я изменюсь :) – Jorm

+0

просто объясните, что вы пытаетесь сделать более подробно, чем «получить регулярное выражение для работы». Хорошее эмпирическое правило заключается в том, что кто-то может найти ваш Q/A, если у них будет такая же проблема. –

ответ

2

(В BBcode вы полужирный текст с [b]xxx[/b] не **xxx**.)

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

'<b>$1</b>' 
+0

ОК я должен переименовать свою функцию тогда :) спасибо – Jorm

0

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

preg_replace("/.*\*{2}(.+?)\*{2}.*/", "<b>$1</b>", "My name is **bob**"); 
Смежные вопросы