Новые переменные могут быть decalared только в области действия блока. Необходимо записать что-то вроде этого:
case VAL:
// This will work
{
int newVal = 42;
}
break;
, Конечно, newVal только имеет объем в фигурных скобках...
С наилучшими пожеланиями, Ralph
The answer to this question is \Z
took me awhile to figure it out, but it works now. Note that conversely, \A
matches beginning of the whole string (as opposed to ^
and $
matching the beginning of one line).
EOF на самом деле не является символом. Если у вас многострочная строка, то '$' будет соответствовать концу строки, а также концу строки.
В Perl и его собратьях \ A
и \ Z
соответствует началу и концу строки, полностью игнорируя разрывы строк.
Расширения GNU для регулярных выражений POSIX используют \ `
и \ '
для тех же целей .
Вам действительно нужно захватывать разделители строк? Если нет, то это регулярное выражение должно быть всем, что вам нужно:
/\w+/
Предполагается, что все подстроки, которые вы хотите сопоставить, полностью состоят из словесных символов, как в вашем примере.
Может быть, попробовать $ (EOL / EOF) вместо (\ r \ n | \ n)?
/\"(.+?)\".+?(\w.+?)$/
Предполагая, что вы используете правильный модификатор, заставляющий обрабатывать строку в целом (не построчно - и если \ n работает для вас, значит, вы его используете), просто добавьте другую альтернативу - конец строки: (\ r \ n | \ n |, | $)