簡體   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