获取@符号后面的所有浮点数

问题描述 投票:0回答:2

我有随机变量,例如:

Strip @ 489.000
Strip 1 @ 489.000
Strip 2 @ 589.000

我需要输出只是

[anything] @
之后的数字来给我:

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);
php regex preg-replace sanitization textmatching
2个回答
2
投票

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

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

请参阅 正则表达式演示


0
投票

从每行的开头替换为

@
符号,然后匹配
@
符号及其后面的空格。 用空字符串替换该匹配项。

代码:(演示

$text = <<<TEXT
Strip @ 489.000
Strip 1 @ 489.000
Strip 2 @ 589.000
TEXT;

echo preg_replace('/^[^@]+@ /m', '', $text);

输出:

489.000
489.000
589.000
© www.soinside.com 2019 - 2024. All rights reserved.