2013-08-31 4 views
1

У меня есть следующий код: регулярокрегулярное выражение не работает должным образом - preg_replace или preg_match

$search_query=preg_replace('#[a-z. .a-z]#i', ' ', $_POST['searchquery']); 

Моя база данных в нижнем регистре. Толкование, которое я собираюсь сделать: $search_query должно допускать все буквы на основе без учета регистра и любого пробела, но игнорировать символы и цифры. Он не должен заменять ничего, поскольку он чувствителен к регистру. И он должен обработать «search_query».

Куда я ошибаюсь ...? Мои хэштеги правильны и i = нечувствительны к регистру ...

Примеры ВХОДОВ: пользователь вводит «заполнять». Другой пользователь вводит «bLaH». Третий пользователь вводит «БОЛЬШОЙ».

+2

Покажите нам примеры ввода с желаемыми выходами после preg_replace, объясняя, чего вы пытаетесь достичь. – user4035

+0

Попробуйте добавить '^' к вашему регулярному выражению в качестве первого символа в вашем классе символов. [Пример] (http://regexr.com?365ov) – MisterBla

+1

'[a-z. .a-z] '- очень странное регулярное выражение ...' [a-z. ] 'будет делать то же самое. Думаю, это почти противоположность тому, что вы имеете в виду. – Rudie

ответ

0

'#[^a-z ]#i', похоже, работает очень хорошо.

Смежные вопросы