2014-03-05 76 views
0

如何在php中查找字符串中的特定字符a但不是a或字符串ab? 我想使用此代碼在php中查找特定字符

$c=strpos($a, 'a') === 0); 
$cr=strpos($a, 'ar') === 0); 
if ($c == true) {echo "This is c";} 
else if ($cr == true) {echo "This is cr";} 

但不是這個

$cr=strpos($a, 'ar') === 0); 
$c=strpos($a, 'a') === 0); 
if ($cr == true) {echo "This is cr"; } 
else if ($c == true) {echo "This is c"; } 

這也沒有工作根據需要

$ C = strpos($ A, 'A'); $ cr = strpos($ a,'ar'); (substr($ a,$ c + 1,1)!='a'){echo「found a!」; } echo a else if(substr($ a,$ c + 1,1)!='ar'){echo「found ar!」; }這也呼應一個不AR

+2

儘管我討厭這麼說,但正則表達式(preg)可能是您最好的選擇。 – Powerlord

+1

使用正則表達式來完成作業 – vogomatix

+0

'$ c = strpos($ a,'a'); if(substr($ a,$ c + 1,1)!='a'){找到它! } ' –

回答

2

考慮使用preg_match("/(?<!a)a(?![ab])/",$a,$match,PREG_OFFSET_CAPTURE)

如果返回1,然後有一個a不是aaab(注意回顧後是必要的,否則在aa第二a會比賽)。

此外,您可以使用$match[0][1]來查看匹配字符串中的位置。

+0

這是否也適用於像'\ ba \ b'這樣的簡單單詞邊界? – sofl

+0

@sofl不是。如果你想匹配'ac'會怎麼樣? –

+0

+1使用RegEx的高效方法 – 2014-03-06 14:53:08