Предполагая, что вы используете внутренний построитель Eclipse goto Preferences-> C / C ++ Build-> Settings
Выберите раздел предупреждений для компилятора, есть флажки для -Wall и -pedantic For -ansi set в Разное
Как отмечает OP, это просто для каждого проекта, а не для глобальной установки
Ни базовое, ни расширенное регулярное выражение Posix / GNU не распознает нежадный квантификатор; вам нужно более позднее регулярное выражение. К счастью, регулярное выражение Perl для этого контекста довольно легко получить:
perl -pe 's|(http://.*?/).*|\1|'
sed -E интерпретирует регулярные выражения как расширенные (современные) регулярные выражения
Обновление: -E в MacOS X, -r в GNU sed.
Другой способ, не использующий регулярное выражение, - использовать метод полей / разделителей, например
string="http://www.suepearson.co.uk/product/174/71/3816/"
echo $string | awk -F"/" '{print $1,$2,$3}' OFS="/"
sed не поддерживает «нежадный» оператор.
Вы должны использовать оператор «[]», чтобы исключить «/» из совпадения.
sed 's,\(http://[^/]*\)/.*,\1,'
PS нет необходимости использовать обратную косую черту "/".
В этом конкретном случае вы можете выполнить работу без использования нежадного регулярного выражения.
Попробуйте это нежадное регулярное выражение [^ /] *
вместо . *?
:
sed 's|\(http://[^/]*/\).*|\1|g'