将 Preg_match 仅用于两个特定符号内的字符串


Use Preg_match for just for string inside two certain symbols

例如,我试图将preg_match用于两个特定符号中的字符串

My Name is %^i%Ibrahem ^i.

我想只对 ^i 使用preg_match,这两个符号 %% 内是字体样式:斜体;我试过:

$find=array(''''^i'si');$replace=array('font-style:italic;');  $replaced = preg_replace($find,$replace,$string);

但它也替换了最后一个 ^i 还要记住,%% 之间的字符串也可以是 %^b ^i%,所以我不能条件字符串必须是 %^i% 帮助!

您可以改用此模式:

$find = array('/%(.*?)('^i)(.*?)%/', '/%(.*?)('^b)(.*?)%/');
$replace = array('%$1font-style:italic;$3%', '%$1font-weight:bold;$3%');
$replaced = preg_replace('/%(.*)%/', '<span style="$1">', preg_replace($find, $replace, $string));