【发布时间】:2012-03-30 11:36:22
【问题描述】:
我需要某种正则表达式来获取花括号内的部分代码。关于这个还有其他问题,但我的有点不同。
将此代码视为示例;
public function my_method($my_input) {
if(true == false) { $me = "Forever alone. :("; }
if(true == true) { $me = "No longer alone. :}"; }
if(false == false) { $me = ":{ - This is so Wrong."; }
}
并忽略“public function my_method($my_input)”部分。怎么抢
if(true == false) { $me = "Forever alone. :("; }
if(true == true) { $me = "No longer alone. :}"; }
if(false == false) { $me = ":{ - This is so Wrong."; }
不会被字符串(和 cmets 等 ofc)中的“{”和“}”字符误导?
我对正则表达式的了解非常有限,我很难做到这一点。 :/
【问题讨论】:
-
要解析PHP代码吗?
-
这行不通的原因与您无法使用正则表达式解析 HTML 的原因相同 - PHP 和 HTML 都不是常规语言
-
我正在尝试创建/开发某种代码编辑器,它仅在方法内部限制编辑。
-
用正则表达式来做这件事非常困难,你应该遍历字符,这样你就可以知道你在引用的块内处于什么状态......等等。因为这是一个嵌套问题……您需要知道何时回到原始嵌套级别。像 {....{{...}...}...} 这样的东西只是使用正则表达式的方式。