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锟侥诧拷锟街o拷 锟斤拷replacement锟斤拷锟斤拷锟芥换锟斤拷

锟斤拷锟斤拷

pattern

要锟斤拷锟斤拷锟斤拷模式锟斤拷锟斤拷锟斤拷使一锟斤拷锟街凤拷锟斤拷锟斤拷锟街凤拷锟斤拷锟斤拷锟介。

锟斤拷锟斤拷使锟斤拷一些PCRE锟斤拷锟轿凤拷锟斤拷

replacement

锟斤拷锟斤拷锟芥换锟斤拷锟街凤拷锟斤拷锟斤拷锟街凤拷锟斤拷锟斤拷锟介。锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷一锟斤拷锟街凤拷锟斤拷锟斤拷锟斤拷锟斤拷pattern 锟斤拷一锟斤拷锟斤拷锟介,锟斤拷么锟斤拷锟叫碉拷模式锟斤拷使锟斤拷锟斤拷锟斤拷址锟斤拷锟斤拷锟斤拷锟斤拷婊伙拷锟斤拷锟斤拷pattern锟斤拷replacement 锟斤拷锟斤拷锟斤拷锟介,每锟斤拷pattern使锟斤拷replacement锟叫讹拷应锟斤拷 元锟截斤拷锟斤拷锟芥换锟斤拷锟斤拷锟�replacement锟叫碉拷元锟截憋拷pattern锟叫碉拷锟劫o拷 锟斤拷锟斤拷锟斤拷锟�pattern使锟矫匡拷锟街凤拷锟斤拷锟斤拷锟斤拷锟芥换锟斤拷

replacement锟叫匡拷锟皆帮拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷\\n 锟斤拷$n锟斤拷锟斤法锟斤拷锟斤拷选锟斤拷锟竭★拷 每锟斤拷 锟斤拷锟斤拷锟斤拷锟斤拷锟矫斤拷锟斤拷匹锟戒到锟侥碉拷n锟斤拷锟斤拷锟斤拷锟斤拷锟介捕锟今到碉拷锟侥憋拷锟芥换锟斤拷 n 锟斤拷锟斤拷锟斤拷0-99锟斤拷\\0锟斤拷$0锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷模式匹锟斤拷锟侥憋拷锟斤拷 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟脚硷拷锟斤拷锟斤拷式为锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷糯锟斤拷锟斤拷遥锟� 锟斤拷1锟斤拷始锟斤拷锟斤拷锟斤拷锟揭拷锟�replacement 锟斤拷使锟矫凤拷斜锟竭o拷锟斤拷锟斤拷使锟斤拷4锟斤拷("\\\\"锟斤拷锟斤拷注锟斤拷锟斤拷为锟斤拷锟斤拷锟斤拷锟斤拷php锟斤拷锟街凤拷锟斤拷锟斤拷锟斤拷锟斤拷转锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷倬锟斤拷锟� 锟斤拷锟斤拷锟斤拷式锟斤拷锟斤拷锟脚憋拷锟斤拷为锟斤拷一锟斤拷原锟侥凤拷斜锟斤拷)锟斤拷

锟斤拷锟斤拷锟芥换模式锟铰癸拷锟斤拷锟斤拷锟揭猴拷锟斤拷锟斤拷锟矫猴拷锟斤拷锟斤拷锟斤拷锟斤拷锟揭拷锟斤拷锟斤拷锟揭伙拷锟斤拷锟斤拷锟�(锟斤拷锟界:锟斤拷一锟斤拷匹锟斤拷模式锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟揭伙拷锟皆拷锟斤拷锟斤拷锟�)锟斤拷 锟斤拷锟斤拷使锟斤拷\\1锟斤拷锟斤拷锟斤拷锟斤法锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟矫★拷锟斤拷锟界, \\11锟斤拷锟斤拷使preg_replace() 锟斤拷锟斤拷锟斤拷锟斤拷锟较o拷锟斤拷锟斤拷锟揭伙拷锟�\\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锟斤拷锟斤拷锟截o拷锟斤拷锟斤拷锟斤拷锟斤拷锟� 锟斤拷锟斤拷没锟叫改憋拷锟� 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() - 锟斤拷锟斤拷锟斤拷锟揭伙拷锟絇CRE锟斤拷锟斤拷执锟叫诧拷锟斤拷锟侥达拷锟斤拷锟斤拷锟�