繁体   English   中英

如何用PHP中的正则表达式将字符串中的标题数字分开?

[英]How to separate heading digits from a string with regex in PHP?

我有一个字符串的形式

$str = '0.5An55.5Tik';

并希望将标题号分开

$number = '0.5';
$str = 'An55.5Tik'

我提出了这个想法

$array = preg_split('/(^[0-9.]+)(.*?)/i',$str);

但正则表达式不起作用。

你可以用

$results = preg_split('~^\d*\.?\d+\K~', $s);

请参阅正则表达式演示

图案细节

  • ^ - 字符串的开头
  • \\d* - 0+位数
  • \\.? - 可选的.
  • \\d+ - 1+位数
  • \\K - 匹配重置运算符,丢弃到目前为止匹配的所有文本。

您还可以通过匹配将值分组:

preg_match('~^(\d*\.?\d+)(.*)~', $s, $m)

查看另一个演示PHP演示

$s = '0.5An55.5Tik';
if (preg_match('/^(\d*\.?\d+)(.*)/', $s, $m)) {
 echo $m[1] . "\n" . $m[2];
}

在这里, (\\d*\\.?\\d+)将数字放入组1中,而(.*)将其余的字符串放入组2中。

输出:

0.5
An55.5Tik

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM