1

这是我想否定的模式:

[\+\-][0-9\.]+

这些是示例行:

Stephane Robert (+1.5 Sets)
Stephane Robert (-1.5 Sets)
Philipp Kohlschreiber
Philipp Kohlschreiber (-1.5 Sets)
Philipp Kohlschreiber (+1.5 Sets)
Player Names (n)
Another Player-Player

我想去除除数字之外的所有数字,匹配模式,即我只想要正浮点数或负浮点数。

+1.5
-1.5
-1.5
+1.5

我正在使用 php 和 preg_replace。

谢谢!

4

2 回答 2

1

如果您想查找与您的模式匹配的字符串,只需使用preg_match()而不是preg_replace().

于 2016-10-27T08:58:10.060 回答
0

你可以使用这个。这也将删除其他没有所需值的行。

(?=.*[+-]\d+\.\d+).*([+-]\d+\.\d+).*|(.*)

解释

PHP 代码示例

$re = '/(?=.*[+-]\d+\.\d+).*([+-]\d+\.\d+).*|(.*)/m';
    $str = 'Stephane Robert (+1.5 Sets)
    Stephane Robert (-1.5 Sets)
    Philipp Kohlschreiber
    Philipp Kohlschreiber (-1.5 Sets)
    Philipp Kohlschreiber (+1.5 Sets)
    Player Names (n)
    Another Player-Player';
    $subst = '\\1';

    $result = preg_replace($re, $subst, $str);

    echo $result;
于 2016-10-27T09:12:41.480 回答