2016-03-15 2 views
0

У меня есть строка: «Совет № 123 некоторый случайный текст», и мне нужно разместить тег <br /> после #123, так что some random text находится в новой строке.Как найти строку с php?

Я мог найти # с strpos, но куда я могу оттуда?

+0

Посмотрите на 'str_replace()'. Просто '# 123' на' # 123
' – Rizier123

+0

@ Rizier123 нормально, но что, если строка' # 126', мне нужно найти полный номер и как я могу это сделать? Таким образом, '#' + следующие числа образуют строку, которую я должен найти. – Xeen

+1

Затем вы хотите использовать 'preg_replace()'. И скажите, что вы хотите '# \ d +' вместо hardcoded '# 123' – Rizier123

ответ

2

Вы можете использовать следующий код:

/** 
* Function to create a dynamic replacement. 
* @param array $match An array with the match of the pattern. 
* @return string The replacement. 
*/ 
function getReplacement($match) 
{ 
    if (isset($match[0])) { 
     return $match[0].'<br/>'; 
    } 
} 

//the value to replace specific parts. 
$string = 'Tip #1 some #12 random #123 text #1234, an #12345 example #123456'; 

//replace all parts starting with '#' and three numbers following. 
echo preg_replace_callback('/#[0-9]+/', 'getReplacement', $string); 

рабочий пример можно найти здесь: https://3v4l.org/RNmkj

+0

Спасибо! Можете ли вы показать способ динамического набора чисел после '#'? Так что может быть # 1 # 12 # 123 # 1234 и любое число после него – Xeen

+0

изменил код и добавил '+' за одну или несколько номеров после '#'. –

+0

Спасибо, отлично работает! – Xeen

Смежные вопросы