Php заменить все точки

str_replace

Эта функция возвращает строку или массив, в котором все вхождения search в subject заменены на replace .

Если не нужны сложные правила поиска/замены (например, регулярные выражения), использование этой функции предпочтительнее preg_replace() .

Список параметров

Если search и replace — массивы, то str_replace() использует каждое значение из соответствующего массива для поиска и замены в subject . Если в массиве replace меньше элементов, чем в search , в качестве строки замены для оставшихся значений будет использована пустая строка. Если search — массив, а replace — строка, то эта строка замены будет использована для каждого элемента массива search . Обратный случай смысла не имеет.

Если search или replace являются массивами, их элементы будут обработаны от первого к последнему.

Искомое значение, также известное как needle (иголка). Для множества искомых значений можно использовать массив.

Значение замены, будет использовано для замены искомых значений search . Для множества значений можно использовать массив.

Строка или массив, в котором производится поиск и замена, также известный как haystack (стог сена).

Если subject является массивом, то поиск с заменой будет осуществляться над каждым элементом subject , а результатом функции также будет являться массив.

Если передан, то будет установлен в количество произведенных замен.

Возвращаемые значения

Эта функция возвращает строку или массив с замененными значениями.

Примеры

Пример #1 Примеры использования str_replace()

// присваивает: Hll Wrld f PHP
$vowels = array( «a» , «e» , «i» , «o» , «u» , «A» , «E» , «I» , «O» , «U» );
$onlyconsonants = str_replace ( $vowels , «» , «Hello World of PHP» );

// присваивает: You should eat pizza, beer, and ice cream every day
$phrase = «You should eat fruits, vegetables, and fiber every day.» ;
$healthy = array( «fruits» , «vegetables» , «fiber» );
$yummy = array( «pizza» , «beer» , «ice cream» );

$newphrase = str_replace ( $healthy , $yummy , $phrase );

// присваивает: 2
$str = str_replace ( «ll» , «» , «good golly miss molly!» , $count );
echo $count ;
?>

Пример #2 Примеры потенциальных трюков с str_replace()

// Порядок замены
$str = «Строка 1\nСтрока 2\rСтрока 3\r\nСтрока 4\n» ;
$order = array( «\r\n» , «\n» , «\r» );
$replace = ‘
‘ ;

// Обрабатывает сначала \r\n для избежания их повторной замены.
echo $newstr = str_replace ( $order , $replace , $str );

// Выводит F, т.к. A заменяется на B, затем B на C, и так далее.
// В итоге E будет заменено F, так как замена происходит слева направо.
$search = array( ‘A’ , ‘B’ , ‘C’ , ‘D’ , ‘E’ );
$replace = array( ‘B’ , ‘C’ , ‘D’ , ‘E’ , ‘F’ );
$subject = ‘A’ ;
echo str_replace ( $search , $replace , $subject );

// Выводит: яблорехкорех орех (по вышеуказанной причине)
$letters = array( ‘я’ , ‘о’ );
$fruit = array( ‘яблоко’ , ‘орех’ );
$text = ‘я о’ ;
$output = str_replace ( $letters , $fruit , $text );
echo $output ;
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Замечание о порядке замены

Так как str_replace() осуществляет замену слева направо, то при использовании множественных замен она может заменить ранее вставленное значение на другое. Смотрите также примеры на этой странице.

Замечание:

Эта функция чувствительна к регистру. Используйте str_ireplace() для замены, нечувствительной к регистру.

Смотрите также

  • str_ireplace() — Регистронезависимый вариант функции str_replace
  • substr_replace() — Заменяет часть строки
  • preg_replace() — Выполняет поиск и замену по регулярному выражению
  • strtr() — Преобразует заданные символы или заменяет подстроки

Источник

str_replace

Эта функция возвращает строку или массив, в котором все вхождения search в subject заменены на replace .

Если не нужны сложные правила поиска/замены (например, регулярные выражения), использование этой функции предпочтительнее preg_replace() .

Список параметров

Если search и replace — массивы, то str_replace() использует каждое значение из соответствующего массива для поиска и замены в subject . Если в массиве replace меньше элементов, чем в search , в качестве строки замены для оставшихся значений будет использована пустая строка. Если search — массив, а replace — строка, то эта строка замены будет использована для каждого элемента массива search . Обратный случай смысла не имеет.

Если search или replace являются массивами, их элементы будут обработаны от первого к последнему.

Искомое значение, также известное как needle (иголка). Для множества искомых значений можно использовать массив.

Значение замены, будет использовано для замены искомых значений search . Для множества значений можно использовать массив.

Строка или массив, в котором производится поиск и замена, также известный как haystack (стог сена).

Если subject является массивом, то поиск с заменой будет осуществляться над каждым элементом subject , а результатом функции также будет являться массив.

Если передан, то будет установлен в количество произведенных замен.

Возвращаемые значения

Эта функция возвращает строку или массив с замененными значениями.

Примеры

Пример #1 Примеры использования str_replace()

// присваивает: Hll Wrld f PHP
$vowels = array( «a» , «e» , «i» , «o» , «u» , «A» , «E» , «I» , «O» , «U» );
$onlyconsonants = str_replace ( $vowels , «» , «Hello World of PHP» );

// присваивает: You should eat pizza, beer, and ice cream every day
$phrase = «You should eat fruits, vegetables, and fiber every day.» ;
$healthy = array( «fruits» , «vegetables» , «fiber» );
$yummy = array( «pizza» , «beer» , «ice cream» );

$newphrase = str_replace ( $healthy , $yummy , $phrase );

// присваивает: 2
$str = str_replace ( «ll» , «» , «good golly miss molly!» , $count );
echo $count ;
?>

Пример #2 Примеры потенциальных трюков с str_replace()

// Порядок замены
$str = «Строка 1\nСтрока 2\rСтрока 3\r\nСтрока 4\n» ;
$order = array( «\r\n» , «\n» , «\r» );
$replace = ‘
‘ ;

// Обрабатывает сначала \r\n для избежания их повторной замены.
echo $newstr = str_replace ( $order , $replace , $str );

// Выводит F, т.к. A заменяется на B, затем B на C, и так далее.
// В итоге E будет заменено F, так как замена происходит слева направо.
$search = array( ‘A’ , ‘B’ , ‘C’ , ‘D’ , ‘E’ );
$replace = array( ‘B’ , ‘C’ , ‘D’ , ‘E’ , ‘F’ );
$subject = ‘A’ ;
echo str_replace ( $search , $replace , $subject );

// Выводит: яблорехкорех орех (по вышеуказанной причине)
$letters = array( ‘я’ , ‘о’ );
$fruit = array( ‘яблоко’ , ‘орех’ );
$text = ‘я о’ ;
$output = str_replace ( $letters , $fruit , $text );
echo $output ;
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Замечание о порядке замены

Так как str_replace() осуществляет замену слева направо, то при использовании множественных замен она может заменить ранее вставленное значение на другое. Смотрите также примеры на этой странице.

Замечание:

Эта функция чувствительна к регистру. Используйте str_ireplace() для замены, нечувствительной к регистру.

Смотрите также

  • str_ireplace() — Регистронезависимый вариант функции str_replace
  • substr_replace() — Заменяет часть строки
  • preg_replace() — Выполняет поиск и замену по регулярному выражению
  • strtr() — Преобразует заданные символы или заменяет подстроки

Источник

Заменить точку с запятой в строке, обрамленной кавычками

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

не получается из подстроки, обрамленной кавычками, убрать точку с запятой. Пробовал так: preg_replace(«/^\»(\W);(\W)\»+$/», «$1.$2», $text);

4 ответа 4

С учетом экранированных кавычек и прочих замечаний выше:

$result = preg_replace_callback('/(?, $text); /* string(395) "Гибридизация; "ковалентно испаряет \"фрагментарный,\" катионит при любом катализаторе,". Энергетический подуровень \"синфазно;\" адсорбирует "квазар, тем самым, открывая, возможность. " синтеза тетрахлордифенилдиоксина;" */ var_dump($result); 

UPD. Та же самая регулярка более подробно с комментариями:

/ # соответствует выражению, если подвыражение в скобках (? 

Алгоритм простой: регулярное выражение находит все строки в кавычках целиком с учетом экранирования и для их замены применяет callback, который в свою очередь заменяет в строке все символы ; на , .

Т.о. если кавычка будет в начале строки, то данное условие будет истинно (поскольку начало строки не соответствует обратному слешу) и кавычка захватиться.

Еще (если я правилно понял) почему между кавычками д.б. как минимум 2 символа ?

?(?

Это ведь часть для поиска "завершающей" кавычки ?

Нет, я специально разбил составляющие шаблона на строки.

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

А завершающая кавычка задается так-же как и открывающая.

Источник

Замена символов по регулярному выражению

Замена символов и строк по регулярному выражению при помощи PHP функции preg_replace() .

Замена повторяющихся пробелов на один

$text = 'Многие известные личности и по сей день'; echo preg_replace("/[ ]+/", ' ', $text);
Многие известные личности и по сей день

Замена 4х пробелов на tab

Выражение заменяет четыре пробела на табуляцию в начале всех строк.

$text = ' My text has somuch whitespace'; echo preg_replace('/(?:^|\G)(\t|[ ])/m', "\t", $text);
 My text has somuch whitespace

Замена точек на многоточие

$text = 'Многие известные личности и по сей день. '; echo preg_replace('/\./', '…', $text);
Многие известные личности и по сей день…

Замена повторяющихся знаков препинания

$text = 'Многие известные. личности и по сей день. Современные. технологии достигли. '; echo preg_replace("/(\.|,|!|\?)+/", '\\1', $text);
Многие известные. личности и по сей день, Современные? технологии достигли!

Комментарии

Другие публикации

Вставка и добавление в текст регулярными выражениями

Генерация паролей в PHP

Замена кавычек на «ёлочки» в PHP

Для форматирования текста иногда требуется заменить все кавычки в тексте на французские «ёлочки», сделать это можно с.

Очистка данных из форм в PHP

Для предотвращения XSS, SQL-инъекций и других атак, данные полученные из форм нужно чистить. Простое экранирования кавычек не достаточно, нужен комплексный подход по типу данных.

Источник

Читайте также:  Java hibernate one to one example
Оцените статью