1

「if」構造に一致する正規表現を作成する必要があります。例えば:

if(whatever) {  } else { adsffdsa } else if() { }

コードブロックと式が有効であるかどうかは関係ありません。構造が正しいことだけが問題です。私はこの点に到達しました:

/^if\s*\((.*?)\)\s*{(.*?)}\s*//

ただし、他と一致し続けようとすると、正規表現が機能しなくなった場合。私はこれらの2つのことを試しました:

/^if\s*\((.*?)\)\s*{(.*?)}\s*else?/
/^if\s*\((.*?)\)\s*{(.*?)}\s*(else|else\s*if(\s*))?/

正規表現がある場合、elseステートメントと一致させるにはどうすればよいですか?

4

1 に答える 1

1

さあ、これで正しい方向に向けられるはずですが、より洗練されたものにするほど醜くなります。

/^if\s*\((.*?)\)\s*{(.*?)}(\s*(else|else\s+if\s*\((.*?)\))\s*{(.*?)})*/

それが役に立てば幸い

これは私にとっては一致したので、ほとんどの場合に一致するはずです(ブロックの周りにコメントがない限り):

if(whatever) {  } else { adsffdsa } else if() { }
else if() {}
于 2013-02-22T23:01:14.403 に答える