我按任意顺序输入包含这些特殊字符的字符串:*
.
和\n
我想确保字符串中没有其他字符,\n
应该总是在一起,而不是像*.*..\..n
那样,所以我希望使用常规字符串在Java中完全匹配字符串表达
我尝试使用正则表达式来确定输入字符串是否与下面的模式匹配:
String input = "*.*.*.\n..";
System.out.println(input.matches("[\\\\.*\\n]"));
然而,输出是错误的。
我尝试使用双转义字符,以便处理Java对转义字符的使用,但结果并不像预期的那样。
答案 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]*"));