参照下面的问题 - String.replaceAll single backslashes with double backslashesJava中,正则表达式,需要转义反斜线在正则表达式
我写了一个测试程序,我发现结果是在这两种情况下都是这样,我是否转义反斜线或不。这可能是因为 - \ t是一个公认的Java String转义序列。 (试试吧,它会抱怨)。 - \ t被视为正则表达式中的文字标签。 我有点不确定的原因。
是否有关于在Java中转义正则表达式的一般指导原则。我认为使用两个反斜杠是正确的方法。
我仍然想知道你的意见。
public class TestDeleteMe {
public static void main(String args[]) {
System.out.println(System.currentTimeMillis());
String str1 = "a b"; //tab between a and b
//pattern - a and b with any number of spaces or tabs between
System.out.println("matches = " + str1.matches("^a[ \\t]*b$"));
System.out.println("matches = " + str1.matches("^a[ \t]*b$"));
}
}
这是正确的,*“我相信”*没有必要。 ''\\ t“'转换为Java字符串中的'”\ t“',这转换为正则表达式引擎中的制表符。 '“\ t”转换为Java字符串中的制表符,在正则表达式中保持不变。 – Tomalak 2012-02-02 13:53:03
谢谢。我明白。 – RuntimeException 2012-02-02 13:53:03
@Tomalak摆脱了'我相信'一点......对不起... – 2012-02-02 13:55:40