Php 检查字符串中是否有字符串并将其提取

Php 检查字符串中是否有字符串并将其提取,php,regex,Php,Regex,我有一个字符串,可能有1-3颗星在开始。我想检查是否有星星,如果是这样,我需要将它们提取为整数 * Lorem ipsum ** Lorem ipsum *** Lorem ipsum Lorem ipsum 结果: array(1, 'Lorem ipsum') array(2, 'Lorem ipsum') array(3, 'Lorem ipsum') array(0, 'Lorem ipsum') 您可以使用: $s = '*** Lorem ipsum'; if (preg_ma

我有一个字符串,可能有1-3颗星在开始。我想检查是否有星星,如果是这样,我需要将它们提取为整数

* Lorem ipsum
** Lorem ipsum
*** Lorem ipsum
Lorem ipsum
结果:

array(1, 'Lorem ipsum')
array(2, 'Lorem ipsum')
array(3, 'Lorem ipsum')
array(0, 'Lorem ipsum')
您可以使用:

$s = '*** Lorem ipsum';

if (preg_match('/^(\**) *(.+)$/', $s, $m)) {
    $out = array(strlen($m[1]), $m[2]);
    print_r($out);
}
输出:

array(
  0 => 3,
  1 => "Lorem ipsum",
)
您可以使用:

$text = <<<TEXT
* Lorem ipsum
** Lorem ipsum
*** Lorem ipsum
Lorem ipsum
TEXT;

preg_match_all('/^(\**)\s*(.*)$/m', $text, $matches);
list(, $keys, $values) = $matches;

for ($i=0; $i < count($keys); $i++) 
    $result[] = [strlen($keys[$i]), $values[$i]];

var_export($result);