2014-12-19 6 views
0
assert 'c' ==~ (?i:[^c].*) 

Отлич- консольный вывод: ошибкаGroovy Ошибка компиляции: неожиданный маркер

groovy> assert 'c' ==~ (?i:[^c-d].*); 
         ^

1 сборник: неожиданный маркер? на линии: 1, столбец: 17

Почему я получаю неисключенный токен здесь?

+1

Я добавил «^», чтобы выделить столбец 17. Можете ли вы проверить, что я положил его в нужном месте просто.? в случае, если есть ошибка cut'n'paste. –

ответ

2

Вам нужен побег перед парном ... И вам не нужен двоеточие после модификатора, нечувствительного к регистру. (? i) отлично. Однако знайте, что ваше утверждение всегда будет «ложным», поскольку регистр, нечувствительный c, никогда не будет соответствовать отрицательному диапазону [^ c-d].

assert 'c' ==~ /(?i)([^c-d].*)/ 
+1

Разве это не косая цитата, а побег? –

+0

Не уверен ... может быть ... мой groovy немного ... iffy. –

+0

Спасибо, Эдди Б, что сработало. Самое смешное, что у меня есть эта работа, подобная этой, прежде чем assert 'c' == ~ (? I [^ c]. *) – Reggae141

0

Предполагая, что регулярное выражение вы пытаетесь построить это «любая строка, которая начинается с любым символом не в диапазоне от С до D (регистронезависимый)», то ваш «:» должно быть «) (» :

(?i)([^c-d].*) 

(?i) является флагом матч за «нечувствительны к регистру»

+0

Интересно, знает ли OP, что этот RE «falsey» ... «C» никогда не соответствует (? i) [^ cd] –

+0

делает Утверждение об этом не удастся – Reggae141

+0

Я знаю, но это то, что вы хотели. В вопросе о том, что он должен пройти, нет никаких требований. –

Смежные вопросы