Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
特定の構文の文字列を解析するために正規表現を使用しています。
Pattern.compile("(\\d+)(d)(\\d+)(([\\+\\-\\*\\/])(\\d+))*"); // The regexp pattern
これを次のような文字列に一致させたい:
2d6 4d4+1 2d12*2-1
問題は、次のような x-*/ で終わる文字列にも一致することです。
3d4-
この正規表現を使用します(\d+)(d)(\d+)(([-+*/])(\d+))
(\d+)(d)(\d+)(([-+*/])(\d+))
しかし、2d12x2-1 は一致しません。x は正規表現に存在しません。正規x表現を次のように変更するために、それについて何も言わないでください。(\d+)(d)([\dx]+)(([\+\-\*\/])(\d+))
x
(\d+)(d)([\dx]+)(([\+\-\*\/])(\d+))
編集:
アンカーが必要ですか?設定^し$、正規表現で
^
$
Pattern.compile("^(\\d+)(d)(\\d+)(([-+*/])(\\d+))*$");