这个等价的java正则表达式字符串

时间:2017-04-21 13:52:31

标签: java regex

我正在尝试从目录中的所有xml文档中删除dtd标记,并且我尝试使用正则表达式删除它。

我正在使用以下表达式删除它。

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

但是,我收到以下错误

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

有人可以让我知道上面字符串的Java等效正则表达式。

1 个答案:

答案 0 :(得分:1)

在Java中,您需要使用双反斜杠转义特殊字符。
试试这个:

final String regex = "<!DOCTYPE[^>\\[]*(\\[[^\\]]*\\])?>";

这是DEMO