-2

このようなシーケンスを解析できるように正規表現を使用したい...

ifelseifelseififif

他のすべての場合は if が必要ですが、すべての if が必要なわけではありません。この表現を使おうと思います

((if)*+(ifelse)*)*

しかし、それをJavaで使用できる形式に変換する方法がわかりません。誰かが私を見せて、それを分解してもらえますか?

4

2 に答える 2

2

あなたはおそらく欲しい:((if)*|(ifelse)*)*|「または」という意味です。

ただし、これで何を達成したいかは不明です。あなたの入力はあいまいです。かもしれない

if {
} else {
}
if {
} else {
}
if {
}
if {
}
if{
}

またはそうかもしれません

if {
} else {
    if {
    } else {
    }
}
if {
}
if {
}
if {
}

または他の多くのバリエーション。

于 2013-05-03T05:40:32.700 に答える
1

正規表現ロジックでは、一致させたい:

(ifif
|OR
ifelse)ifelse
*そのトークン、0 回以上。

(if|ifelse)*

これは 0 個以上の if/elseif に一致します。

文字列全体を最初から最後まで埋める必要がある場合、たとえば部分一致がない場合は、その前に ^ を置き、その後に $ を置きます。

^(if|ifelse)*$

正規表現構文の概要についてはhttp://www.regular-expressions.info/reference.htmlを読んでください(たとえば、+正規表現であると思われるものではありません) ブラウザで正規表現をすばやくテストします。

于 2013-05-03T05:45:59.900 に答える