首页 > 解决方案 > 正则表达式 preg_replace php

问题描述

我有随机变量,例如: Strip @ 489.000 Strip 1 @ 489.000 Strip 2 @ 589.000

我需要的输出是:'anything @' 489.000 之后的唯一数字

所以给我输出:489.000 489.000 589.000

热到实现这个使用 php 正则表达式?

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

标签: phpregexpreg-replace

解决方案


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

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+ 个数字的可选序列。

请参阅正则表达式演示


推荐阅读