如何將這些替換組合成一個正則表達式?合併幾個mb_ereg_replace() - 調用
$style = $node->getAttribute("style");
$style = mb_ereg_replace("(direction:[[:space:]]*(rtl|ltr);)", "", $style) . " direction: {$direction};"; // remove existing direction-attribute and add the new one
$style = mb_ereg_replace("(^[[:space:]]*)|([[:space:]]*$)", "", $style); // trim spaces at the end and beginning
$style = mb_ereg_replace("([[:space:]]){2,}", " ", $style); // limit spaces to one at a time
$node->setAttribute("style", $style);
表達式按預期工作,但我想將它們組合到少於三個替換語句。
我不能只是替換現有的方向屬性,因爲我不知道是否有任何方向屬性。
編輯
新增交替前兩個替代:
$style = mb_ereg_replace("(direction:[[:space:]]*(rtl|ltr);)|(^[[:space:]]*)|([[:space:]]*$)", "", $style) . " direction: {$direction};"; // remove existing direction-attribute and trim spaces at the end and beginning and add the new one
$style = mb_ereg_replace("([[:space:]]){2,}", " ", $style); // limit spaces to one at a time
您可以將它們列爲[alternatives](http://www.regular-expressions.info/alternation.html)。 – mario 2012-04-13 10:29:29
我知道,但我在問[mb_ereg_replace()](http://il.php.net/manual/en/function.mb-ereg-replace.php)。如果你能指點我一個更好的解決辦法,而不是告訴我,我不應該使用的東西不應該被使用,我會很高興,@Truth。 – fragmentedreality 2012-04-13 10:30:17
@Truth:['mb_ereg'](http://php.net/mb_ereg)不是。 (也不贊成使用它,並不意味着它可能會很快被刪除。) – mario 2012-04-13 10:31:20