正则表达式在满足特定条件时添加CSS条件

It's a bit complicated. I would like to write a regexp to add border:0;display:block if the $subject doesn't contain, or if $subject's border doesn't equal 0 nor display:block;

for instance, if the $subject is:

Case 1:

color:white

after preg_replace if will return

color:white;border:0;display:block

Case 2:

color:white;border:1px;

after preg_replace if will return

color:white;border:0;display:block

Case 3:

color:white;display:inline

after preg_replace if will return

color:white;display:block;border:0;

Case 4:

{empty}

after preg_replace if will return

border:0;display:block;

How about removing border, display attribute, then append attribute you want?

function no_border($css)
{
    $css = preg_replace('/;?\s*(border|display)\s*:[^;]+;?/', '', $css);
    return ltrim(rtrim($css, ';') . ';border:0;display:block;', ';');
}

no_border('color:white');                // "color:white;border:0;display:block;"
no_border('color:white;border:1px;');    // "color:white;border:0;display:block;"
no_border('color:white;display:inline'); // "color:white;border:0;display:block;"
no_border('');                           // "border:0;display:block;"