Регулярное выражение и знак "]" или "["

Danilevsky

Новичок
Регулярное выражение и знак "]" или "["

Пытаюсь написать регулярное выражение, которое бы проверяло введенную пользователем информацию в текстовом поле, разрешало ему вводить только латинские буквы, цифры и некоторые специальные знаки:

PHP:
if ($txt_msg)
    if (!ereg("^[a-zA-Z0-9_\!\?]+$", $txt_msg))
 	{ 
	echo "Нужно вводить на латиннице!";
	}
Вот этот код работает отлично.
А вот вопрос: вместо специального символа ''!'' я хочу подставить этот символ "[".
Не пашет! Все специальные символы работают, кроме квадратных скобок!
Спасибо!
 

Danilevsky

Новичок
Автор оригинала: Steamroller
Danilevsky, попробуй 2 слеша ставить перед символом, т .е. "[\\]\\[a-z.....]".
Не рулит такое, потому что 2 слеша, применяется для вставки специального символа слеш, тоесть, слешь сам себя вставляет в код! А мне надо эту хренову скобку вставить
 

Tor

Новичок
посмотри на свою локаль
потом у гугла спроси раскладку (или у википедии, тут часто ссыка пролетает)
там увидишь шестнадцатеричный код символа
и вставишь его в выражение
 

Steamroller

Новичок
Автор оригинала: Danilevsky
Не рулит такое, потому что 2 слеша, применяется для вставки специального символа слеш, тоесть, слешь сам себя вставляет в код! А мне надо эту хренову скобку вставить
Ты попробовал? Или так, умозрительно решил что не сработает?
 

Steamroller

Новичок
Ага.
В preg_match оно работает c двумя слешами.
А в ereg - так работает:
^[][a-z....]+$
 

Danilevsky

Новичок
Steamroller, спасибо тебе большое, действительно,!
^[][a-z....]+$
Вот так работает!! Еще раз спасибо!!
 
Сверху