用自己或'else'这个词来表示花括号

时间:2013-04-15 10:14:43

标签: java regex curly-braces

我正在尝试为代码计数工具cloc编写一些自定义定义,但不幸的是,正则表达式不是我的强项。

我正在努力编写一个正则表达式,该正则表达式将匹配{}

之前和/或之后仅包含空格的行

我还需要匹配包含空格和}后跟关键字else

的行

即。在以下示例中:

1  if ( some condition ) {
2     do something
3  } else if ( some other condition ) {
4     do this
5  } else {
6     do this
7  }
8  
9  if ( some other condition ) 
10 {
11   do this
12 }

我需要一个匹配第5,7,10和12行的正则表达式。

我从一个非常简单的\s*{开始,但这也与包含单词的行匹配。

2 个答案:

答案 0 :(得分:1)

此正则表达式遵循您概述的规范:

String regex = "\\s*[{}]\\s*|\\s*\\}\\s*else.*";

它匹配包含以下内容的行:

  • 0或更多空格,后跟{},后跟0或更多空格

  • 0或更多空格,然后是},然后是0或更多空格,然后是else,然后是任何空格。

答案 1 :(得分:1)

以下正则表达式会匹配由以下更多实例组成的行:whitespaces{}或单词else组件,但没有别的:

^(?:[\s{}]|else)+$