0

我正在尝试为代码计数工具编写一些自定义定义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*{ 但这与包含单词的行匹配。

4

2 回答 2

1

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

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

它匹配包含以下任一项的行:

  • 0或多个空格,后跟{or },后跟 0 个或多个空格

    或者

  • 0或多个空格,然后是 a },然后是0或多个空格,然后else是 ,然后是任何内容。

于 2013-04-15T10:17:22.883 回答
1

以下正则表达式将匹配由以下更多实例组成的行:whitespaces、、或单词组件{,但仅此而已:}else

^(?:[\s{}]|else)+$
于 2013-04-15T10:19:17.840 回答