一个文档中有for语句,请问如何用正则表达式判断这个for语句是不是正确的,比如for{};for(aaa);for;这些都不正确,正确的是for(,,,){};谢谢大家

解决方案 »

  1.   

    @"^for\s*\([^;]*;([^;]*;[^;]*)\)\s*{((?<o>{)|(?<-o>})|[^{}])*}(?(o)(?!))$"
    必须以for开头,以}结尾.for后面的括号里要有两个分号.
    大括号要正确配对.
    其余的检查就没有了.
      

  2.   

    "for\\s*\\(([^\\;]*);([^\\;]*);([^\\;]*)\\)\\s*\\{[^\\{]*\\}"
    这个你试试看
      

  3.   

    谢谢各位,但是我发现如果有嵌套的for循环就好像不可以啊,是不是只能解决单个for循环的?那嵌套怎么办呢?
      

  4.   


    "^for\(\s*(?:int|string|object)\s+[\w\d\s]+=(?:.|\s?)+;.+;(?:.|\s?)+\)$"