以下代码用于从字符串中删除html标签
s = s.replaceAll("\\<[^>]*>","");
以下代码也给出相同的结果:
s = s.replaceAll("<[^>]*>","");
有什么区别?为什么要在前面加上双斜杠?
的用途是什么。在正则表达式中?你能举个例子吗?
答案 0 :(得分:4)
不需要。正如您所指出的,两者都做同样的事情。这就是为什么...
在Java正则表达式中,\\
是单个反斜杠。反斜杠用于转义下一个字符。下一个字符是<
,不需要转义,因此\\<
是多余的,可以仅用<
替换。
在此处查找具有特殊含义和/或需要转义的字符: http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html
假设您要匹配?
而不是<
,那么您将使用\\?
之类的正则表达式。
要匹配单个反斜杠,您的正则表达式中需要4个反斜杠\\\\
。
还请注意,如果您要将这行代码输入到像IntelliJ IDEA这样的IDE中,它将突出显示并说:
RegExp中的多余字符转义符'\\ <'