2017-01-20 5 views
1
$value['keyword']='P|$$';<br> 
$keyword = preg_quote($value['keyword'], '/');<br> 
$question = "verying P|$$ quedon";<br> 
echo $abc = preg_replace("/\b($keyword)\b/i",'<span style="color:red">$1</span>',$question);<br> 

preg_replace이다 나는 붉은 색에서 문자열의 검색 키워드를 원하는

+0

''/ \ b ($ keyword) \ b/i "'대신/(?

+0

'
'도 구문 오류를 일으킬 것입니다 (그들은 실제로 당신의 실제 코드에 없습니까?). – segFault

+0

패턴을 시도했지만 String P | $$의 "P"만 대체했습니다. 및 기타 특수 문자가 빨간색으로 대체되지 않습니다. –

답변

0

$ 후 단어 경계가 후 오른쪽에 나타날 수있는 단어 문자를 필요로 문자열 PHP에서 특수 문자를 교체하지 않는, 그래서 대체 복용이 없다 여기있어.

당신은 키워드가 선행 또는 단어를 문자로 따른다면 경기를 실패 (?<!\w)(?!\w) lookarounds의 도움으로 정의 명확한 경계 단어 경계를 대체해야합니다

$value['keyword']='P|$$'; 
$keyword = preg_quote($value['keyword'], '/'); 
$question = "verying P|$$ quedon"; 
echo $abc = preg_replace("/(?<!\w)($keyword)(?!\w)/i",'<span style="color:red">$1</span>',$question); 

PHP demo

를 참조하십시오
+0

고마워요. –

+0

다행이 당신을 위해 일 했어요. 왼쪽에있는 ✓를 클릭하여 대답을 수락하는 것을 고려하십시오 ([답변을 수락하는 방법] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) 참조). –