Функция PHP похожа на эту функцию JavaScript

Мне нужна аналогичная функция в PHP для этой функции JavaScript

text = text.replace(/ffc/g, "Hello");

Я думаю, что preg_replace подойдет, но я не уверен, как написать выражение.

Я хочу, чтобы регулярное выражение было похоже на /ffc/g, которое приведено выше. Мне нужно точно соответствовать полному слову и регистру при выполнении замены...


person Jude    schedule 30.04.2010    source источник


Ответы (5)


$text = preg_replace('/ffc/', 'replacement text',  $subject);

Онлайн-руководство по PHP довольно удивительно, и это одна из лучших функций языка:

http://php.net/preg_replace

person Erik    schedule 30.04.2010
comment
Недопустимое выражение, неправильное использование preg_replace и, наконец... используя обычные rxpressions для такой простой задачи. - person Crozin; 30.04.2010
comment
Возможно, ОП просто запрашивает функцию замены регулярного выражения, эквивалентную в PHP. Я также думаю, что обратиться к php.net — это фантастическая идея, учитывая, насколько надежным является онлайн-руководство. - person dclowd9901; 30.04.2010

Просто используйте функцию str_replace следующим образом:

$text = str_replace('ffc', 'Hello', $text);

Использование регулярного выражения здесь является огромным чрезмерным использованием.

person Crozin    schedule 30.04.2010
comment
видя, что его пример замены довольно бессмысленен, я вполне уверен, что это не совсем то, что он хочет сделать - более вероятно, как мне заменить регулярное выражение в PHP - person Erik; 30.04.2010
comment
Спасибо .. но я хочу сопоставить регистр, а также полное слово при выполнении замены - person Jude; 30.04.2010

preg_replace(); Сделаю.

Пояснение:

preg_replace  (  mixed $pattern  ,  mixed $replacement  ,  mixed $subject  [,  int $limit = -1  [,  int &$count  ]] )
The pattern to search for. It can be either a string or an array with

струны.

The e modifier makes preg_replace() treat the replacement

параметр как PHP-код после выполнения соответствующей замены ссылок. Совет: убедитесь, что замена представляет собой допустимую строку кода PHP, иначе PHP сообщит об ошибке синтаксического анализа в строке, содержащей preg_replace().

Строка или массив строк для замены. Если этот параметр является строкой, а параметр шаблона — массивом, все шаблоны будут заменены этой строкой. Если и шаблон, и параметры замены являются массивами, каждый шаблон будет заменен замещающим аналогом. Если в массиве замещения меньше элементов, чем в массиве шаблонов, все лишние шаблоны будут заменены пустой строкой.

replacement may contain references of the form \\n or (since PHP 4.0.4)

$n, причем последняя форма является предпочтительной. Каждая такая ссылка будет заменена текстом, захваченным n-м шаблоном в скобках. n может принимать значения от 0 до 99, а \0 или $0 относятся к тексту, совпадающему со всем шаблоном. Открывающие скобки считаются слева направо (начиная с 1), чтобы получить номер захватываемого подшаблона. Чтобы использовать обратную косую черту вместо нее, ее необходимо удвоить ("\\" PHP-строка).

When working with a replacement pattern where a backreference is

сразу же за которым следует другое число (т. е. размещение буквального числа сразу после совпадающего шаблона), вы не можете использовать знакомую нотацию \1 для своей обратной ссылки. \11, например, может сбить с толку функцию preg_replace(), поскольку она не знает, хотите ли вы, чтобы за обратной ссылкой \1 следовал литерал 1, или за обратной ссылкой \11 ничего не следовало. В этом случае решение состоит в том, чтобы использовать \${1}1. Это создает изолированную обратную ссылку $1, оставляя 1 литералом.

When using the e modifier, this function escapes some characters

(а именно ', ", \ и NULL) в строках, которые заменяют обратные ссылки. Это делается для того, чтобы гарантировать отсутствие синтаксических ошибок при использовании обратных ссылок с одинарными или двойными кавычками (например, 'strlen(\'$1\')+strlen ("$2")'). Убедитесь, что вы знакомы с синтаксисом строк PHP, чтобы точно знать, как будет выглядеть интерпретируемая строка.

Строка или массив строк для поиска и замены.

If subject is an array, then the search and replace is performed on

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

Максимально возможные замены для каждого шаблона в каждой строке темы.

Если указано, эта переменная будет заполнена количеством выполненных замен. По умолчанию -1 (без ограничений).

preg_replace() возвращает массив, если параметр subject является массивом, или строку в противном случае.

Если совпадения найдены, будет возвращена новая тема, в противном случае тема будет возвращена без изменений или NULL, если произошла ошибка.

person OM The Eternity    schedule 30.04.2010

Исходя из вашего требования заменить полное слово, я бы предложил следующее:

$text = preg_replace ('/\bffc\b/', 'Hello', $text);

Заменяет все экземпляры «ffc» с учетом регистра.

person K Prime    schedule 30.04.2010

person    schedule
comment
В PCRE нет такого модификатора, как g использование регулярного выражения для простой замены является чрезмерным. - person Crozin; 30.04.2010
comment
Кто сказал что-нибудь о регулярном выражении? - person dclowd9901; 30.04.2010