(PHP 4, PHP 5, PHP 7)
preg_replace — 执锟斤拷一锟斤拷锟斤拷锟斤拷锟斤拷式锟斤拷锟斤拷锟斤拷锟斤拷锟芥换
$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', -1 , $count);
echo $count; //3
?>
锟斤拷锟斤拷锟斤拷锟教伙拷锟斤拷锟斤拷锟�
xp***to 3
Note:
锟斤拷使锟斤拷锟斤拷锟斤拷锟斤拷式锟斤拷
pattern
锟斤拷replacement
时, 锟斤拷锟结按锟斤拷key锟斤拷锟斤拷锟斤拷锟叫筹拷锟街碉拷顺锟斤拷锟斤拷写锟斤拷锟�. 锟斤拷锟斤拷一锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟剿筹拷锟揭伙拷锟�. 锟斤拷锟斤拷锟斤拷锟斤拷锟绞癸拷锟斤拷锟斤拷锟斤拷缘确锟绞斤拷锟�replacement
锟斤拷pattern
锟斤拷锟斤拷锟芥换, 锟斤拷锟斤拷锟斤拷诘锟斤拷锟�preg_replace()之前锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟揭伙拷锟�ksort()锟斤拷锟斤拷.