Scala 正则表达式未闭合字符错误

Scala Regex Unclosed character error

我正在尝试定义这个正则表达式来检测我的 xml 文件中的标签

我写了下面的代码:

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

但它给了我以下错误

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

我做错了什么?

转义字符 class 中的 ][

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

你应该转义集合中的 ][:

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