preg_replace

(PHP 4, PHP 5, PHP 7)

preg_replaceִ��һ��������ʽ���������滻

˵��

preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] ) : mixed

����subject��ƥ��pattern�IJ��֣� ��replacement�����滻��

����

pattern

Ҫ������ģʽ������ʹһ���ַ������ַ������顣

����ʹ��һЩPCRE���η���

replacement

�����滻���ַ������ַ������顣������������һ���ַ���������pattern ��һ�����飬��ô���е�ģʽ��ʹ������ַ��������滻�����pattern��replacement �������飬ÿ��patternʹ��replacement�ж�Ӧ�� Ԫ�ؽ����滻�����replacement�е�Ԫ�ر�pattern�е��٣� �������patternʹ�ÿ��ַ��������滻��

replacement�п��԰�����������\\n ��$n���﷨����ѡ���ߡ� ÿ�� ���������ý���ƥ�䵽�ĵ�n���������鲶�񵽵��ı��滻�� n ������0-99��\\0��$0����������ģʽƥ���ı��� �����������ż�����ʽΪ������������������Ŵ����ң� ��1��ʼ�������Ҫ��replacement ��ʹ�÷�б�ߣ�����ʹ��4��("\\\\"����ע����Ϊ��������php���ַ���������ת������������پ��� ������ʽ�����ű���Ϊ��һ��ԭ�ķ�б��)��

�����滻ģʽ�¹������Һ������ú����������Ҫ������һ������(���磺��һ��ƥ��ģʽ�����������һ��ԭ������)�� ����ʹ��\\1�������﷨�������������á����磬 \\11����ʹpreg_replace() ���������ϣ������һ��\\1�������ý���һ��ԭ��1������ һ��\\11�������ú��治���κζ����� ��������½��������ʹ��${1}1�� �ⴴ����һ��������$1��������, һ��������ԭ��1��

��ʹ�ñ����õ� e ���η�ʱ, ���������ת��һЩ�ַ�(����'��"�� \ �� NULL) Ȼ����к��������滻������Щ��ɺ���ȷ���������ý������û�е����Ż� ˫����������﷨����(���磺 'strlen(\'$1\')+strlen("$2")')��ȷ������PHP�� �ַ����﷨�����ҷ���eval�﷨����Ϊ������滻�� ����Ὣ����ַ�����Ϊphp����ʹ��eval��ʽ����������������ֵ��Ϊ���ղ����滻���ַ�����

subject

Ҫ�����������滻���ַ������ַ������顣

���subject��һ�����飬�������滻����subject ��ÿһ��Ԫ���Ͻ���, ���ҷ���ֵҲ����һ�����顣

limit

ÿ��ģʽ��ÿ��subject�Ͻ����滻����������Ĭ���� -1(����)��

count

���ָ�������ᱻ���Ϊ��ɵ��滻������

����ֵ

���subject��һ�����飬 preg_replace()����һ�����飬 ��������·���һ���ַ�����

���ƥ�䱻���ҵ����滻���subject�����أ���������� ����û�иı�� subject������������󣬷��� NULL ��

�����쳣

PHP 5.5.0 �� ���� "\e" ���η���ʱ�򣬻����һ�� E_DEPRECATED ���� PHP 7.0.0 �𣬻���� E_WARNING ����ͬʱ "\e" Ҳ�޷���Ч��

������־

�汾 ˵��
7.0.0 ����֧�� /e���η��� ���� preg_replace_callback() ���档
5.5.0 /e ���η��Ѿ��������ˡ�ʹ�� preg_replace_callback() ���档�μ��ĵ��� PREG_REPLACE_EVAL ���ڰ�ȫ���յĸ�����Ϣ��
5.1.0 ���Ӳ���count.

����

Example #1 ʹ�ú������ý�����ֵԭ��

<?php
$string 
'April 15, 2003';
$pattern '/(\w+) (\d+), (\d+)/i';
$replacement '${1}1,$3';
echo 
preg_replace($pattern$replacement$string);
?>

�������̻������

April1,2003

Example #2 preg_replace()��ʹ�û�������������

<?php
$string 
'The quick brown fox jumps over the lazy dog.';
$patterns = array();
$patterns[0] = '/quick/';
$patterns[1] = '/brown/';
$patterns[2] = '/fox/';
$replacements = array();
$replacements[2] = 'bear';
$replacements[1] = 'black';
$replacements[0] = 'slow';
echo 
preg_replace($patterns$replacements$string);
?>

�������̻������

The bear black slow jumps over the lazy dog.

��ģʽ���滻���ݰ�key�����������ǿ��Եõ������Ľ����

<?php
ksort
($patterns);
ksort($replacements);
echo 
preg_replace($patterns$replacements$string);
?>

�������̻������

The slow black bear jumps over the lazy dog.

Example #3 �滻һЩֵ

<?php
$patterns 
= array ('/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/',
                   
'/^\s*{(\w+)}\s*=/');
$replace = array ('\3/\4/\1\2''$\1 =');
echo 
preg_replace($patterns$replace'{startDate} = 1999-5-27');
?>

�������̻������

$startDate = 5/27/1999

Example #4 ����հ��ַ�

������Ӱ������Ŀհ��ַ�

<?php
$str 
'foo   o';
$str preg_replace('/\s\s+/'' '$str);
// ����ı�Ϊ'foo o'
echo $str;
?>

Example #5 ʹ�ò���count

<?php
$count 
0;

echo 
preg_replace(array('/\d/''/\s/'), '*''xp 4 to', -$count);
echo 
$count//3
?>

�������̻������

xp***to
3

ע��

Note:

��ʹ��������ʽ��pattern��replacementʱ, ���ᰴ��key�������г��ֵ�˳����д���. ����һ�������������˳��һ��. ���������ʹ�������Եȷ�ʽ��replacement��pattern �����滻, ������ڵ���preg_replace()֮ǰ���������������һ��ksort()����.

�μ�

  • PCRE ģʽ
  • preg_quote() - ת��������ʽ�ַ�
  • preg_filter() - ִ��һ��������ʽ�������滻
  • preg_match() - ִ��ƥ��������ʽ
  • preg_replace_callback() - ִ��һ��������ʽ��������ʹ��һ���ص������滻
  • preg_split() - ͨ��һ��������ʽ�ָ��ַ���
  • preg_last_error() - �������һ��PCRE����ִ�в����Ĵ������