请为我解码这个正则表达式

时间:2013-07-13 21:42:48

标签: php regex

我继承了一些我试图修改的网页游戏的PHP代码。我遇到了这一行,我无法弄清楚它应该做什么。有人可以帮帮我吗? $ notice只是一个常规字符串。

$notice = preg_replace("#([\S]{60})#i", "\\1 ", $notice);

1 个答案:

答案 0 :(得分:7)

它会在$notice中找到60个非空白字符的连续序列,并在其后插入一个空格:

  • (..)创建一个捕获组。因为它是替换字符串中的第一个组,它被称为\1。因为整个模式都在小组中,所以这里并不需要它。
  • [..]创建一个字符类,但因为它只包含一个元字符,所以这里也不需要它。
  • \S匹配任何非空白字符
  • {60}是量词;这意味着'重复60次'。

此代码相当于:

$notice = preg_replace("#\S{60}#i", "\\0 ", $notice);