Home Articles

regex自己或用'else'字的花括号

Asked
Viewed 663 times
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*{ 开始,但这也与包含单词的行匹配 .

2 Answers

  • 1

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

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

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

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

    要么

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

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

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

Related