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 に答える