У меня небольшая проблема с моими правилами Laravel и регулярным выражением:
В основном правило представляет собой массив как таковой:
'room'=>'required|alpha_num|min:2|max:10', Проблема, с которой я сталкиваюсь, – это использовать регулярное выражение и | (или), например:
 'cid'=>'required|regex:/^((comp)|(soen)|(engr)|(elec))\d{3}$/i', 
Я получаю сообщение об ошибке сервера:
 ErrorException preg_match(): No ending delimiter '/' found 
  Я предполагаю, что preg_match останавливается при первом |  внутри /.../ . 
Есть ли способ написать вышеприведенный код, чтобы заставить его работать?
Полный код:
 public static $rules = array( 'cid' => array('required', 'regex:/^((comp)|(soen)|(engr)|(elec))\d{3}$/i'), 'description'=>'required|regex:/^[A-Za-z \t]*$/i|min:3|unique:courses', 'credits'=>'required|regex:/^\d+(\.\d)?$/' ); 
        http://laravel.com/docs/validation#rule-regex
регулярное выражение: шаблон
Поле под проверкой должно соответствовать данному регулярному выражению.
Примечание. При использовании шаблона регулярного выражения может потребоваться указать правила в массиве вместо> использования разделителей каналов, особенно если регулярное выражение содержит символ канала.
Чтобы уточнить: вы сделали бы что-то подобное
 $rules = array('test' => array('size:5', 'regex:foo')); 
  Вы должны использовать array вместо разделения правил, используя |  : 
 'cid' => array('required', 'regex:/^((comp)|(soen)|(engr)|(elec))\d{3}$/i') 
  Уровень вздутия трубы ( | ) доступен в вашем шаблоне регулярных выражений, поэтому он противоречит разделителю.  Другой ответ уже заявил об этом.