有限状態マシンを構築しようとしていますが、取得したシーケンスを正規表現で確認したいと考えています。シーケンスが次のフォームからのものかどうかを確認する必要があります。
例えば:
"A,B,C,C,C,C,C,A"
→受け付けます。
"A,B,C,C,C,C,A"
-> は無視されます。
"A,B,C,C,C,C,C,C,A"
-> は無視されます。
この投稿とその投稿を見つけましたが、試したすべてが機能しません。
次のことを試してみましA\B\D{5}\A
たABD{5}A
:
編集: C 文字が正確に 5 回返されるかどうかを知りたいです。前後はまったく関係ありません。つまり、次のようになる可能性もあります。
A、A、A、F、F、R、E、D、C、C、C、C、C、......
コンマは考慮しないでください。
問題は、シーケンスが受け入れられるかどうかを調べる必要があることですが、シーケンスは次の形式からのものです: A、B、C*10、マシン クラス、状態クラス、およびイベント クラスを作成しました。しかし、C のリターンが正確に 5 回あるかどうかを知る必要があり、多くの問題が発生しています。
編集: 機能していません。追加したコードを参照してください。
String sequence1 = "A,B,C,C,C,C,A";
String sequence2 = "A,B,C,C,C,C,C,A";
String sequence3 = "A,B,C,C,C,C,C,C,A";
Pattern mPattern = Pattern.compile("(\\w)(?:,\\1){4}");
Matcher m = mPattern.matcher(sequance1);
m.matches(); //FALSE
Matcher m = mPattern.matcher(sequance2);
m.matches(); //FALSE
Matcher m = mPattern.matcher(sequance3);
m.matches(); //FALSE
常に false を返します。
どうすればこれを達成できますか?
ありがとう。