regex - 用于识别 If 语句的正则表达式

标签 regex

我正在尝试编写一个正则表达式来识别 if 语句。我遇到的唯一问题是让它捕获 if 括号中带有括号的语句。例如:

if (condition_function(params)) {
     statements;
}

我捕获除这些以​​外的所有 if 语句的表达式是:
 if\s*\(([^\(\)]|\s)*\)\s*{(.|\s)*?}

有谁知道怎么写?

最佳答案

这对于正则表达式是不可能的,因为正则表达式只能匹配正则语言,而您尝试解析的语言是上下文无关的而不是正则的(感谢 dirkgently 和 dmckee)。

看看WP: Formal language theory你有兴趣吗...

顺便提一句。如果正确([[][]] 是正确的,但 []][ 不是),您甚至无法检查仅由括号组成的表达式,这是您上面给出的一个“子问题”。

关于regex - 用于识别 If 语句的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/651455/

相关文章:

regexbuddy 有时不要回溯

java - 带有可选非重复点的字符串的正则表达式

python - 正则表达式在python中拦截整数和 float

regex - 在哪里可以找到 Perl 的集合正则表达式练习?

javascript - 使用正则表达式验证属性名称

java - 匹配 HTML 正则表达式 java 中的第 n 个数字

regex - R 同意 : how to match with more than 1 substitution

regex - 如何在 rahul.123@clicksabcd.com 的电子邮件文本字段中使用正则表达式?

java - 使用RegEx在html源中查找特定字符串

regex - 用于Google Analytics(分析)中动态目标页面的正则表达式