正则表达式 preg_replace php

regex preg_replace php

我有这样的随机变量: 地带@ 489.000 地带 1 @ 489.000 地带 2 @ 589.000

我需要的输出是: 'anything @ ' 489.000

之后的唯一数字

所以给我输出: 489.000 489.000 589.000

使用 php 正则表达式很热吗?

$string = '  Strip 1 @ 489.000'; $pattern = ' /(\s\S) @ (\d+)/i'; $replacement = ''; echo preg_replace($pattern, $replacement, $string);

要获取所有匹配项,请使用

if (preg_match_all('/\S\s@\s+\K\d+(?:\.\d+)?/', $text, $matches)) {
    print_r($matches[0]);
}

要获得第一个匹配项,请使用

if (preg_match('/\S\s@\s+\K\d+(?:\.\d+)?/', $text, $match)) {
    print_r($match[0]);
}

详情

  • \S - 非空白字符
  • \s - 一个空格
  • @ - 一个 @ 字符
  • \s+ - 1+ 个空格
  • \K - 匹配重置运算符
  • \d+ - 1+ 位数
  • (?:\.\d+)? - 一个点和 1+ 个数字的可选序列。

参见regex demo