用包含特殊字符的字符串拆分

时间:2013-10-03 11:32:51

标签: java regex

我有一个HTML代码,我想从中删除某些标签。我试图不解析它并重新标记。所以,我把整个HTML代码都放在一个字符串中。我想删除以下标记:

<cite>www.youtube.com/watch?v=

为此,我正在使用:

array=htmlCode.split("<cite>www.youtube.com/watch?v=");

此标记多次出现。但是当我分裂时,我的数组中没有子字符串,只有一个完整的代码串。为什么会这样?

1 个答案:

答案 0 :(得分:1)

  1. 您需要在正则表达式中转义.?,因为它们具有特殊含义。通常,您可以使用单个反斜杠\来执行此操作。但是,我们处于字符串的中间,\不幸的是在引号内也有特殊含义。所以,我们必须再次逃避它,这就是为什么我们需要两个反斜杠,\\

  2. replaceAll(String regex, String replacement)是您正在寻找的方法。

  3. 示例:

    String htmlCode = "START<cite>www.youtube.com/watch?v=END";
    String result = htmlCode.replaceAll("<cite>www\\.youtube\\.com/watch\\?v=", "");
    System.out.println(result);
    

    Output

    STARTEND
    

    加成:

    RegexPal是一个用于测试正则表达式的便捷工具。