我需要制作一个匹配“if”结构的正则表达式。 EG:
if(whatever) { } else { adsffdsa } else if() { }
代码块和表达式是否有效无关紧要,只有结构是正确的。我达到了这一点:
/^if\s*\((.*?)\)\s*{(.*?)}\s*//
然而,当我尝试继续匹配else时,如果正则表达式停止工作。我尝试了这两件事:
/^if\s*\((.*?)\)\s*{(.*?)}\s*else?/
/^if\s*\((.*?)\)\s*{(.*?)}\s*(else|else\s*if(\s*))?/
如果有的话,我如何使我的正则表达式与else语句匹配?
答案 0 :(得分:0)
你走了,这应该让你指向正确的方向,但是你做得越复杂就越难看。
/^if\s*\((.*?)\)\s*{(.*?)}(\s*(else|else\s+if\s*\((.*?)\))\s*{(.*?)})*/
希望有所帮助
它符合我的要求所以它应该匹配大多数情况(只要它在块的任何地方都没有注释):
if(whatever) { } else { adsffdsa } else if() { }
else if() {}