我有一个包含多个REGEX的函数。这是我的功能:
function generate($str) {
$str = preg_replace(/\*\*(.*?)\*\*/, "<b>$1</b>", $str);
$str = preg_replace(/__(.*?)__/, "<u>$1</u>", $str);
$str = preg_replace(/\*(.*?)\*/, "<i>$1</i>", $str);
$str = preg_replace(/--(.*?)--/, "<del>$1</del>", $str);
$str = preg_replace(/`(.*?)`/, "<code>$1</code>", $str);
return $str;
}
现在我想知道这是^标准方式吗?在一个变量上覆盖几次?有没有更好的方法?
答案 0 :(得分:2)
documentation for preg_replace
表示前两个参数可以是数组或字符串。如果它们是数组,则第一个数组中的每个匹配项将替换为第二个数组中的相应字符串。 E.g:
function generate($str) {
return preg_replace(
array(
'/\*\*(.*?)\*\*/',
'/__(.*?)__/',
'/\*(.*?)\*/',
'/--(.*?)--/',
'/`(.*?)`/'
),
array(
"<b>$1</b>",
"<u>$1</u>",
"<i>$1</i>",
"<del>$1</del>",
"<code>$1</code>"
),
$str
);
}