PHP preg_split,以相同字符分隔 - php

我正在尝试使用preg_split拆分字符串。这是字符串的示例:
111235622411
我希望输出是这样的:

$arr[0] = "111";
$arr[1] = "2";
$arr[2] = "3";
$arr[3] = "5";
$arr[4] = "6";
$arr[5] = "22";
$arr[6] = "4";
$arr[7] = "11";

因此,如果一个接一个出现相同的字符,我希望它们位于同一“块”中。我只是无法提出我应该使用的正则表达式。如果某些术语错误,我感到很抱歉,因为自从我编写PHP以来已经有一段时间了。

参考方案

我会使用preg_match_all()

$string = '111235622411';

preg_match_all('/(.)\1*/', $string, $matches);
var_dump($matches[0]);

\1引用先前捕获的组(.)(任何单个字符)。此功能称为back referencing。正则表达式会重复先前匹配的字符-贪婪*,这意味着它会尽可能匹配相等的字符,这是问题中需要的字符。

输出:

array(8) {
  [0]=>
  string(3) "111"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
  [3]=>
  string(1) "5"
  [4]=>
  string(1) "6"
  [5]=>
  string(2) "22"
  [6]=>
  string(1) "4"
  [7]=>
  string(2) "11"
}

php preg_replace两个或更多空格 - php

我正在寻找替换多个空格字符的实例。我最初的搜索似乎都集中在使用/s,但这包括换行符和其他空格我认为应该接近吗?用一个空格替换两个或更多实例空格" "preg_replace('/ {2,}/', ' ', $string); 参考方案 尝试一下:preg_replace('/\s\s+/&…

PHP:Preg_replace,单词边界和非单词字符 - php

我需要替换文本中以井号(#)开头的单词。好吧,我知道如何替换整个单词。preg_replace("/\b".$variable."\b/", $value, $text);由于该\ b修饰符仅接受单词字符,因此不会替换包含井号的单词。我有这个html,其中包含#companyName类型的变量,我将其替换为一个值。 参…

PHP preg_replace删除字符串中的第一个HTML元素 - php

我想在PHP中删除html字符串(始终是一个段落)的整个第一个元素。我目前的方法是使用:$passage = preg_replace('/.*?\b'.'</p>'.'\b/s', '', $passage, 1); 由于</p>中的特殊字符,此方法不起…

PHP preg_match直到双行中断 - php

我在mysql字段中有此数据:First text text text text text text text text text text text text text text text text text text text text Second text text text text text text text text text text te…

PHP preg_replace和号 - php

好吧,我可能不会以正确的方式解决这个问题,但是这里就来了。我有这个带链接的字符串,并提取标签之间的文本...$string = $item; $pattern = '/\<a([^>]*)\>([^<]*)\<\/a\>/i'; $replacement = '$2'; $messa…