PHP str_replace со смещением

У меня есть следующий вывод:

Item
Length : 130
Depth : 25
Total Area (sq cm): 3250
Wood Finish: Beech
Etc: etc

Я хочу удалить общую площадь (кв. См): и 4 цифры после нее из строки, в настоящее время я пытаюсь использовать str_replace следующим образом:

$tidy_str = str_replace( $totalarea, "", $tidy_str);

Правильно ли использовать эту функцию, и если да, то как я могу включить 4 случайные цифры после этого текста? Также обратите внимание, что это не установленный вывод, поэтому строка изменит позицию в этом.

4 ответа

Решение

Это сделает это.

$exp = '/\(sq cm\): \d+/';


echo preg_replace($exp, '', $array);

Вы можете практиковать php regex на http://www.phpliveregex.com/

<?php

$str = '
Item
Length : 130
Depth : 25
Total Area (sq cm): 3250
Wood Finish: Beech
Etc: etc
';

echo preg_replace("/Total Area \(sq cm\): [0-9]*\\n/", "", $str);
Item
Length : 130
Depth : 25
Wood Finish: Beech
Etc: etc

Ты ищешь substr_replace:

$strToSearch = "Total Area (sq cm):";
$totalAreaIndex = strpos($tidy_str, $strToSearch);
echo substr_replace($tidy_str, '', $totalAreaIndex, strlen($strToSearch) + 5); // 5 = space plus 4 numbers.

Если вы тоже хотите удалить символ новой строки, проверьте, \n или \r\n. \n добавить один, \r\n добавить два к смещению. То есть. strlen($strToSearch) + 7

Попробуйте с этим:

  preg_replace('/(Total Area \(sq cm\): )([0-9\.,]*)/' , '', $tidy_str);
Другие вопросы по тегам