使用正则表达式将类属性添加到文件

时间:2014-05-08 12:36:40

标签: php regex reflection preg-replace

如何使用正则表达式向类(或任何字符串)中添加属性?

我希望有类似的东西:

<?php

class Foo extends Sth
{
    protected $bar;
}

成:

<?php

class Foo extends Sth
{
    protected $newProperty;
    protected $bar;
}

模式的切入点应为关键字class和第一个{

这样做的最佳方式是什么?也许有比正则表达更好的方法?受影响的课程当然要复杂得多,所以我不认为这里有反思。

1 个答案:

答案 0 :(得分:1)

我不知道其他类有多复杂,但正则表达式适用于你拥有的样本:

/class[^\r\n]+\R\{(\s*)(?=.*?\})/s

替换为:

$0protected $newProperty;$1

regex101 demo