Ошибка в регулярке. Помогите разобраться.

mit

Новичок
Ошибка в регулярке. Помогите разобраться.

Есть строка - [383] (igostory) Igor Gor

Нужно выдрать идентификатор пользователя, который расположен между квадратных скобок.

Пытаюсь выдирать так
PHP:
preg_match("/[(.*?)]/si", $arr[3], $USER_ID);
Но получаю только знак "(". Большая просьба показать где ошибка. Заранее спасибо за ответы.
 

nimistar

Новичок
PHP:
preg_match("/\(.*\)/si", $arr[3], $USER_ID);

может так сработает ?

вопервых ты указал скобки в перечислении символов .... ну и в целом подмаска указана странно! ты ищешь вхождение любого из перечисленных символов .... и все .... а дальше что ?
 

mit

Новичок
Данный вариант выдирает все что между круглых скобок. А нужно то что между квадратными. Хотя за вариант спасибо.
 

Михалыч

Новичок
PHP:
preg_match('/\[(.*)\]/', $s, $USER_ID);
Во-первых, квадратные скобки являются частью синтаксиса регулярных выражений, поэтому их надо экранировать слэшем, вот так: \[
Во-вторых, ИМХО модификаторы s здесь лишний, а уж i - лишний однозначно.
 

nimistar

Новичок
Автор оригинала: mit
Данный вариант выдирает все что между круглых скобок. А нужно то что между квадратными. Хотя за вариант спасибо.
сори неразобрался что выдирать ..... :)


Михалыч более полно ответил!
 

Активист

Активист
Команда форума
Совет, есть очень хорошая программа, называется RegexBuddy, в ней очень много возможностей для визуализации регулярного выражения и вообще, очень много всего всего))
 
Сверху