регулярное выражение preg_replace php - PullRequest
2 голосов
/ 14 января 2020

У меня есть случайная переменная, такая как: Strip @ 489.000 Strip 1 @ 489.000 Strip 2 @ 589.000

Мне нужен вывод: только число после 'any @' 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);

1 Ответ

2 голосов
/ 15 января 2020

Чтобы получить все совпадения, используйте

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 .

...