0

次の正規表現があります。

^(MIN|MAX|SUM|AVERAGE):[(\\d+(\\.\\d+)?), ]+$

私が実装しようとしているルールは、次の形式の文字列のみを許可する必要があります。

OPERATION: (comma separated list of integers or real numbers)

たとえば、次のことを許可する必要があります。

MIN: 7, 89.7, 67
AVERAGE: 67.9, 89, 9

ただし、フォームの入力は受け付けます

MAX: , 

カンマの両側に空白が含まれないようにするにはどうすればよいですか?

4

5 に答える 5

1

あなたが試みたように、文字クラスには正規表現構造を含めることはできません。

これは、他の回答とはわずかに異なるスピンであり、正規表現が小さくなります。

(MIN|MAX|SUM|AVERAGE): \\d+(\\.\\d+)?(, \\d+(\\.\\d+)?)*

^先頭と末尾のandは必要ありません$- それらは暗示されています。

使用するには:

if (str.matches("(MIN|MAX|SUM|AVERAGE): \\d+(\\.\\d+)?(, \\d+(\\.\\d+)?)*") {
    // yes, format is OK
}
于 2013-05-09T13:48:17.883 に答える