正则表达式让我哭泣,所以,我来到这里寻求帮助。
我正在寻找关于Find& amp;的一些提示替换Panic's Coda。我知道F& R. 是非常先进,但我只是在寻找最好的方法来做到这一点。 我正在尝试重写一个'模板引擎'(非常基本)我继续使用 webapp我用PHP编写代码(CodeIgniter)。
目前我正在调用我的模板:
$this->load->view('subviews/template/headerview');
$this->load->view('subviews/template/menuview');
$this->load->view('subviews/template/sidebar');
$this->load->view('The-View-I-Want-To-Load'); // This is the important line
$this->load->view('subviews/template/footerview');
然而,每次我想使用五行代码都是低效的 在每个不同的控制器中加载不同的页面。所以我重写了这样:
$data['view'] = 'The-View-I-Want-To-Load';
$this->load->view('template',$data);
如果我需要对设计进行任何重大更改,那就可以了 可以从template.php视图文件(包含标题,菜单,侧边栏视图等)轻松完成。
然而,我在很多地方使用过去的5行 不同的控制器和功能。所以,我的问题是---我怎么能 找到并替换旧的模板引擎(5行代码) 一个 - 在重要的,独特的视图名称中替换 $ data ['view]中的那一行?
这有意义吗?!如果不是,我会尝试改写!我的意思是,有没有办法通过正则表达式或其他方式做到这一点?或者我在这里完全错了?
答案 0 :(得分:1)
你的正则表达式看起来像这样:
\$this->load->view\('subviews/template/headerview'\);\n\$this->load->view\('subviews/template/menuview'\);\n\$this->load->view\('subviews/template/sidebar'\);\n\$this->load->view\('([^']*)'\);\n\$this->load->view\('subviews/template/footerview'\);
并替换为
\$data['view'] = '$1';\n\$this->load->view('template',\$data);