このようなシーケンスを解析できるように正規表現を使用したい...
ifelseifelseififif
他のすべての場合は if が必要ですが、すべての if が必要なわけではありません。この表現を使おうと思います
((if)*+(ifelse)*)*
しかし、それをJavaで使用できる形式に変換する方法がわかりません。誰かが私を見せて、それを分解してもらえますか?
あなたはおそらく欲しい:((if)*|(ifelse)*)*
。|
「または」という意味です。
ただし、これで何を達成したいかは不明です。あなたの入力はあいまいです。かもしれない
if {
} else {
}
if {
} else {
}
if {
}
if {
}
if{
}
またはそうかもしれません
if {
} else {
if {
} else {
}
}
if {
}
if {
}
if {
}
または他の多くのバリエーション。
正規表現ロジックでは、一致させたい:
(if
if
|
OR
ifelse)
ifelse
*
そのトークン、0 回以上。
(if|ifelse)*
これは 0 個以上の if/elseif に一致します。
文字列全体を最初から最後まで埋める必要がある場合、たとえば部分一致がない場合は、その前に ^ を置き、その後に $ を置きます。
^(if|ifelse)*$
正規表現構文の概要についてはhttp://www.regular-expressions.info/reference.htmlを読んでください(たとえば、+
正規表現であると思われるものではありません) 。ブラウザで正規表現をすばやくテストします。