考虑以下脚本(在伪语言中完全是胡说八道):
if (Request.hostMatch("asfasfasf.com") && someString.existsIn(new String[] {"brr", "hrr"})) {
if (Requqest.clientIp("10.0.x.x")) {
somevar = "1";
}
somevar = "2";
}
else {
somevar = "first";
}
string foo = "foo";
// etc. etc.
你将如何从中获取 if-block 的参数和内容?if 块的格式为:
if<whitespace>(<parameters>)<whitespace>{<contents>}<anything>
我尝试使用String.split()
正则表达式模式,^if\s*\(|\)\s*\{|\}\s*
但这失败了。即,问题在于) {
内部 if-block 中也发现了该问题,并且在}
许多地方也发现了关闭。我认为懒惰或急切的扩张在这里都行不通。
所以......任何指向我在这里可能需要什么才能用正则表达式实现它的指针?
我还需要在没有 if-block 代码的情况下获取剩余的字符串(所以代码从 开始else { ...
)。使用 justString.split()
似乎很困难,因为没有关于被解析部分的长度的信息。
我最初为此创建了一个基于循环的解决方案(String.substring()
大量使用),但它很乏味。我想要一些更高级的东西。我应该使用正则表达式还是创建一个自定义的通用函数(除此之外还有许多其他情况),它采用可解析的字符串和模式(考虑if<whitespace>(...
上面的模式)?
编辑:更改返回变量赋值,否则没有意义。