php语言 百分网手机站

在PHP中使用正则表达式进行查找替换(3)

时间:2020-08-09 18:00:06 php语言

在PHP中使用正则表达式进行查找替换

  $replacements = array();

  $replacements[2] = 'bear';

  $replacements[1] = 'black';

  $replacements[0] = 'slow';

  //会输出:The bear black slow jumped over the lazy dog.

  echo preg_replace($patterns, $replacements, $string);

  //对模式和替换内容按key进行排序我们可以得到期望的结果.

  ksort($patterns);

  ksort($replacements);

  //会输出:The slow black bear jumped over the lazy dog.

  echo preg_replace($patterns, $replacements, $string);

  替换一些值:

  复制代码 代码如下:

  <?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');

  ?>

  使用修饰符'e':

  复制代码 代码如下:

  <?php

  $html_body = "<p><span>hello</span></p>";

  //会输出:<P><SPAN>hello</SPAN></P>

  echo htmlspecialchars(preg_replace("/(<\/?)(\w+)([^>]*>)/e",

  "'\\1'.strtoupper('\\2').'\\3'",

  $html_body));

  ?>

  剥离空白字符:

  复制代码 代码如下:

  <?php

  $str = 'foo   o';

  $str = preg_replace('/\s\s+/', ' ', $str);

  // 将会改变为'foo o'

  echo $str;

  ?>

  使用参数count:

  复制代码 代码如下:

  <?php

  $count = 0;

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

  //等价于echo preg_replace('/\d|\s/', '', 'xp 4 to', -1 , $count);

  echo $count; //3

  ?>

  7.preg_replace_callback — 执行一个正则表达式搜索并且使用一个回调进行替换

  mixed preg_replace_callback ( mixed $pattern , callable $callback , mixed $subject [, int $limit = -1 [, int &$count ]] )

  这个函数的行为除了 可以指定一个 callback 替代 replacement 进行替换 字符串的计算,其他方面等同于 preg_replace()。

  pattern:

  要搜索的模式,可以使字符串或一个字符串数组。

  callback:

  一个回调函数,在每次需要替换时调用,调用时函数得到的参数是从subject中匹配到的结果。回调函数返回真正参与替换的字符串。

  你可能经常会需要callback函数而 仅用于 preg_replace_callback()一个地方的调用。在这种情况下,你可以使用匿名函数来定义一个匿名函数作为preg_replace_callback()调用时的回调。 这样做你可以保留所有 调用信息在同一个位置并且不会因为一个不在任何其他地方使用的回调函数名称而污染函数名称空间。

  subject:

  要搜索替换的目标字符串或字符串数组。

  limit:

  对于每个模式用于每个 subject 字符串的最大可替换次数。 默认是-1(无限制)。

  count:

  如果指定,这个变量将被填充为替换执行的次数。

  示例:

  preg_replace_callback() 和 create_function():

  复制代码 代码如下:

  <?php

  // 将文本中的年份增加一年.

  $text = "April fools day is 04/01/2002\n";

  $text.= "Last christmas was 12/24/2001\n";

  // 回调函数

  function next_year($matches)

  {

  // 通常: $matches[0]是完成的匹配

  // $matches[1]是第一个捕获子组的匹配

  // 以此类推

  return $matches[1].($matches[2]+1);

【在PHP中使用正则表达式进行查找替换】相关文章:

Word文档中怎样使用查找替换10-06

Session在PHP中的使用09-16

php中strstr查找字符串中包含某些字符的查找函数吗08-14

PHP常用正则表达式09-16

在PHP语言中使用JSON09-27

PHP中trait的使用方法09-05

PHP常用的正则表达式09-21

php中的curl使用入门教程09-03

PHP中trait的使用方法介绍08-24

wps表格如何使用查找命令09-28