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

时间:2016-02-29 15:44:26

标签: php

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

My Name is %^i%Ibrahem ^i.

我想使用preg_match只是为了^ i,这两个符号%%里面是font-style:italic;我试过了:

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

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

1 个答案:

答案 0 :(得分:0)

您可以改用此模式:

$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));