正则表达式识别"如果" java中的场景

时间:2017-05-26 14:48:10

标签: regex

我一直在努力创建一个正则表达式,只识别下面的粗体。我尝试了一些正则表达式规则但没有成功。

if _if abcifabc guiif

我不想承认完整的if(条件){陈述} ....

3 个答案:

答案 0 :(得分:2)

您可以尝试以下正则表达式:

NODE      EXPLANATION
------------------------------------------------------------
  (?:       group, but do not capture:
------------------------------------------------------------
    ^         the beginning of the line
------------------------------------------------------------
   |         OR
------------------------------------------------------------
    \s        whitespace (\n, \r, \t, \f, and " ")
------------------------------------------------------------
  )         end of grouping
------------------------------------------------------------
  if        'if'
------------------------------------------------------------
  (?:       group, but do not capture:
------------------------------------------------------------
    \s        whitespace (\n, \r, \t, \f, and " ")
------------------------------------------------------------
  )         end of grouping

img

正则表达式的说明:

{{1}}

答案 1 :(得分:1)

这将匹配if前面只有空格:

^\s*if\b

^ - 锚定到行首。

\s* - 匹配零个或多个空格字符(包括空格和制表符)。

\b - 需要一个单词边界。所以它不会匹配iffy等等。

正则表达式无法完美地识别编程语言中的关键字(因为完全正确的解决方案需要完全解析语言)。但是,这应该在遵循典型样式的代码中很好地捕获if语句。

答案 2 :(得分:1)

两个字边界之间的

if

/\bif\b/

但要小心,因为它匹配所有if字词(例如评论)。