2014-11-18 11 views

risposta

9

È necessario utilizzare start ^ e terminare $ ancore per eseguire una corrispondenza stringa esatta.

$result = preg_match('/^(aa|bb|cc|dd)$/', $s); 
3
$s = 'aa'; 
$result = preg_match('/^(aa|bb|cc|dd)$/', $s); 
echo $result; 

Usa^e $ per specificare il per abbinare dall'inizio dell'input fino alla fine.

3

Penso che l'eccesso di RegEx per questo problema.

La mia soluzione:

$results = array('aa', 'bb', 'cc', 'dd'); 
$c = 'aa'; 

if(in_array($c, $results, true)) { 
    echo 'YES'; 
} else { 
    echo 'NO'; 
} 
+2

Che cosa significa "eccessivo"? Non sono d'accordo con te –

+1

La differenza è trascurabile, è possibile utilizzare quello che preferisci - https://eval.in/223092 – Styphon

+0

@Styphon, il tuo confronto non è uguale. https://eval.in/private/81d6123d2cd184 - https://eval.in/private/481f2ed8552cb2 –

Problemi correlati