3

特定の構文の文字列を解析するために正規表現を使用しています。

Pattern.compile("(\\d+)(d)(\\d+)(([\\+\\-\\*\\/])(\\d+))*"); // The regexp pattern

これを次のような文字列に一致させたい:

2d6
4d4+1
2d12*2-1

問題は、次のような x-*/ で終わる文字列にも一致することです。

3d4-
4

1 に答える 1

1

この正規表現を使用します(\d+)(d)(\d+)(([-+*/])(\d+))

しかし、2d12x2-1 は一致しません。x は正規表現に存在しません。正規x表現を次のように変更するために、それについて何も言わないでください。(\d+)(d)([\dx]+)(([\+\-\*\/])(\d+))

編集:

アンカーが必要ですか?設定^$、正規表現で

Pattern.compile("^(\\d+)(d)(\\d+)(([-+*/])(\\d+))*$");
于 2012-09-01T17:24:27.380 に答える