2015-01-13 3 views
0

Я пытаюсь определить это регулярное выражение для обнаружения тегов в моем XML файлScala Regex ошибка Unclosed характера

Я написал следующий код:

val regex = """<!DOCTYPE[^>[]*(\[[^]]*\])?>""".r 

, но он дает мне следующую ошибку

Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 27 
<!DOCTYPE[^>[]*(\[[^]]*\])?> 
         ^

Что я делаю неправильно?

ответ

1
<!DOCTYPE[^>[]*(\[[^]]*\])?> 
      ↑  ↑ 

Вы должны спасаясь от ] и [ внутри множеств:

<!DOCTYPE[^>\[]*(\[[^\]]*\])?> 
1

Escape the ], [ настоящее время внутри класс символов.

val regex = """<!DOCTYPE[^>\[]*(\[[^\]]*\])?>""".r 
Смежные вопросы