Java正则表达式匹配特定的特殊字符

时间:2017-02-16 13:58:44

标签: java regex string special-characters

我按任意顺序输入包含这些特殊字符的字符串:* .\n

我想确保字符串中没有其他字符,\n应该总是在一起,而不是像*.*..\..n那样,所以我希望使用常规字符串在Java中完全匹配字符串表达

我尝试使用正则表达式来确定输入字符串是否与下面的模式匹配:

    String input = "*.*.*.\n..";
    System.out.println(input.matches("[\\\\.*\\n]"));

然而,输出是错误的。

我尝试使用双转义字符,以便处理Java对转义字符的使用,但结果并不像预期的那样。

3 个答案:

答案 0 :(得分:1)

您只需添加*量词即可匹配多个字符。此外,没有必要转义文字点:

String input = "*.*.*.\n..";
System.out.println(input.matches("[.*\\n]*"));

[.*\\n]匹配.*或文字换行符\n

答案 1 :(得分:0)

结果String上的匹配方法没有按照您的预期执行 Regex doesn't work in String.matches()

你需要Java的模式和匹配类。

答案 2 :(得分:0)

\ s我们必须使用空格字符:[\ t \ n \ x0B \ f \ r \ n]

String stringToSearch = "...\n..\n..\n.*.*.*.*...*.*";
System.out.println(stringToSearch.matches("[.*\\s]*"));