поиск по выражению reg и ошибка замены - PullRequest
0 голосов
/ 28 октября 2011

Я пытаюсь найти строку, которая является списком групп, к которым принадлежит пользователь в unix,

и замените группу vsifax или ее середину или конец группы строк символом , перед ним с нулевым значением или пробелом, в зависимости от того, что проще

$gs =~ s/*,vsifax//;

но это возвращает ошибку при попытке запустить скрипт

$ usermove.pl > users.sh
Quantifier follows nothing in regex; marked by <-- HERE in m/* <-- HERE ,vsifax/
at usermove.pl line 13.

Я не вижу, в чем проблема, я прочитал и перечитал несколько уроков по регулярным выражениям, и это убивает меня

Ответы [ 2 ]

4 голосов
/ 28 октября 2011

Полагаю, эта команда должна выглядеть следующим образом.

$gs =~ s/*,vsifax//;

должно быть:

$gs =~ s/,?vsifax//;

Полагаю, вы хотите удалить имя группы и последнюю запятую, верно

2 голосов
/ 28 октября 2011

Попробуйте, я не думаю, что * необходимо в вашем регулярном выражении

$gs =~ s/(,?vsifax)|(vsifax,?)//;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...