我正在尝试为代码计数工具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*{
开始,但这也与包含单词的行匹配。
答案 0 :(得分:1)
此正则表达式遵循您概述的规范:
String regex = "\\s*[{}]\\s*|\\s*\\}\\s*else.*";
它匹配包含以下内容的行:
0
或更多空格,后跟{
或}
,后跟0或更多空格
或
0
或更多空格,然后是}
,然后是0
或更多空格,然后是else
,然后是任何空格。
答案 1 :(得分:1)
以下正则表达式会匹配由以下更多实例组成的行:whitespaces
,{
,}
或单词else
组件,但没有别的:
^(?:[\s{}]|else)+$