【发布时间】:2017-11-09 23:46:51
【问题描述】:
我需要使用正则表达式在任何给定文件中查找 if 语句(Java 风格)。然后我需要检查子句,即-
if(a < b) 有 1 个子句
if(a || b) 有 2 个子句
if(a || b && c) 有 3 个子句
子句是不包含任何逻辑运算符的表达式。 if 语句中的表达式是单个子句,除非它被逻辑运算符分隔。
我想知道的是如何找到为子句编写正则表达式。因为如果说 -
[i][f][ ][(][A-Za-z!][)] 会给我一个错误
我不知道如何搜索任何单词,上面的正则表达式正在搜索单个字母或感叹号。
提前谢谢你
【问题讨论】:
-
方括号用于创建字符集,它将匹配其中包含的字符之一。仅包含一个字符的字符集与仅正常写入这些字符相同(有一些值得注意的例外。例如,
[i][f]与if的模式相同。 -
除此之外,这个问题的背景是什么?您是否将此正则表达式模式合并到代码中?使用文本编辑器?你想让它返回什么?所有条款的清单?他们的数量?
-
你的正则表达式可以很容易地写成:if\s?([A-Za-z!])
-
@CAustin 我需要计算带有 1 个子句的 if 的数量、带有 2 个子句的 if 的数量等。我只需要一个数字,我正在文本编辑器中编写正则表达式。我在 Notepad++ 中有一个巨大的程序,我想使用正则表达式来查找计数,因为该程序有 302 个 if 语句。
标签: regex string-matching