了解正则表达式以从字符串中删除HTML标记

时间:2018-06-24 04:26:22

标签: java regex

以下代码用于从字符串中删除html标签

s = s.replaceAll("\\<[^>]*>","");

以下代码也给出相同的结果:

s = s.replaceAll("<[^>]*>","");

有什么区别?为什么要在前面加上双斜杠?

的用途是什么。在正则表达式中?你能举个例子吗?

1 个答案:

答案 0 :(得分:4)

不需要。正如您所指出的,两者都做同样的事情。这就是为什么...

在Java正则表达式中,\\是单个反斜杠。反斜杠用于转义下一个字符。下一个字符是<,不需要转义,因此\\<是多余的,可以仅用<替换。

在此处查找具有特殊含义和/或需要转义的字符: http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html

假设您要匹配?而不是<,那么您将使用\\?之类的正则表达式。

要匹配单个反斜杠,您的正则表达式中需要4个反斜杠\\\\

还请注意,如果您要将这行代码输入到像IntelliJ IDEA这样的IDE中,它将突出显示并说:

  

RegExp中的多余字符转义符'\\ <'