來自這個問題How to match this using regex如何使用正則表達式檢測第二次發生? (php)
現在我想從用戶提交的數據中搜索3D D關鍵字。規則只要3D和D出現在句子中,它就是有效的(不區分大小寫)。
例如:
3Dzzzzzzzzzzzzzzzzzzz(無效的,因爲d的沒有第二occurence)
zzzzzD(無效的,因爲沒有3D)
xxx3DzzzzzD(因爲有效字符串得到3D和d)
我現在使用這個正則表達式,但不知何故它有一個問題。
$subject = 'BLASHSH*3D*8qw9e08e2323*D*';
if(preg_match('/(?=.*3D)(?=.*D).*/i', $subject))
{
echo 'pattern match';
}
else
{
echo 'fail';
}
問題是這樣的字符串也將返回true
3D(它應該是無效的,因爲d沒有第二次出現)
3D ABC(它應該是無效的,因爲d沒有第二次出現)
如何解決這個問題?
像3D一樣的聲音必須在第二個D之前出現。如果我理解正確。 –
是的,它是不區分大小寫的。也可以在3D之前變成D。謝謝。 – cyberfly