What about not using regex at all ?
And working with explode
and in_array
?
Örneğin, bu yapardı:
$pattern = 'webmaster|admin|webadmin|sysadmin';
$forbidden_words = explode('|', $pattern);
Ayırıcı olarak | Bu kullanarak, bir diziye desen patlar.
And this :
$word = 'admin';
if (in_array($word, $forbidden_words)) {
echo "<p>$word is not OK</p>";
} else {
echo "<p>$word is OK</p>";
}
alırsınız
admin is not OK
Oysa bu (same code ; only the word changes):
$word = 'admin2';
if (in_array($word, $forbidden_words)) {
echo "<p>$word is not OK</p>";
} else {
echo "<p>$word is OK</p>";
}
alırsınız
admin2 is OK
Bu şekilde, tam sözcükleri maç için, doğru regex bulma konusunda endişelenmenize gerek yok: sadece tam sözcükleri olacak ;-)
Edit : one problem might be that the comparison will be case-sensitive :-(
Working with everything in lowercase will help with that :
$pattern = strtolower('webmaster|admin|webadmin|sysadmin'); // just to be sure ;-)
$forbidden_words = explode('|', $pattern);
$word = 'aDMin';
if (in_array(strtolower($word), $forbidden_words)) {
echo "<p>$word is not OK</p>";
} else {
echo "<p>$word is OK</p>";
}
Alacak:
aDMin is not OK
(I saw the 'i
'sadece benim cevap yazdıktan sonra regex bayrağı; yani, em>) düzenlemek zorunda
Eğer gerçekten bir regex ile yapmak istiyorsanız Edit 2 : ve, bunu bilmeniz gerekir:
^
dize başlangıcıdır
- ve
$
dizenin sonunu
Yani, böyle bir şey yapmanız gerekir:
$pattern = 'webmaster|admin|webadmin|sysadmin';
$word = 'admin';
if (preg_match('#^(' . $pattern . ')$#i', $word)) {
echo "<p>$word is not OK</p>";
} else {
echo "<p>$word is OK</p>";
}
$word = 'admin2';
if (preg_match('#^(' . $pattern . ')$#i', $word)) {
echo "<p>$word is not OK</p>";
} else {
echo "<p>$word is OK</p>";
}
Parentheses are probably not necessary, but I like using them, to isolate what I wanted.
Ve, çıkış aynı tür alırsınız:
admin is not OK
admin2 is OK
Muhtemelen [
ve ]
kullanmak istemiyorum: Onlar "her birimiz arasında karakter" değil, "bizim aramızda bütün dize" anlamına gelir.
Ve, referans olarak: preg syntax manuel ;-)