java 正则表达式问题?为什么总是false呢?
Patternp=null;//正则表达式Matcherm1=null;//操作的字符串p=Pattern.compile("^(WS[A-Z0-9]*)([(\r\n)...
Pattern p = null; //正则表达式
Matcher m1 = null; //操作的字符串
p = Pattern.compile("^(WS[A-Z0-9]*)([(\r\n) ][A-Z0-9]+){3}[(\r\n) ](SIGMET).*",Pattern.DOTALL );
m1 = p.matcher("WS90\r\nLLOP KJK\r\nKTYU SIGMET hkjhk");
System.out.println( m1.matches()); 展开
Matcher m1 = null; //操作的字符串
p = Pattern.compile("^(WS[A-Z0-9]*)([(\r\n) ][A-Z0-9]+){3}[(\r\n) ](SIGMET).*",Pattern.DOTALL );
m1 = p.matcher("WS90\r\nLLOP KJK\r\nKTYU SIGMET hkjhk");
System.out.println( m1.matches()); 展开
2个回答
展开全部
问题在这 [(\r\n) ] ,你表达的意思应该是\r\n或者空格,但是[(\r\n) ]这样写是不对的,中括号中的小括号没有起到小括号的作用,改为(\r\n| )就可以了
Pattern p = null; //正则表达式
Matcher m1 = null; //操作的字符串
p = Pattern.compile("^(WS[A-Z0-9]*)((\r\n| )[A-Z0-9]+){3}(\r\n| )(SIGMET).*",Pattern.DOTALL );
m1 = p.matcher("WS90\r\nLLOP KJK\r\nKTYU SIGMET hkjhk");
System.out.println( m1.matches());
Pattern p = null; //正则表达式
Matcher m1 = null; //操作的字符串
p = Pattern.compile("^(WS[A-Z0-9]*)((\r\n| )[A-Z0-9]+){3}(\r\n| )(SIGMET).*",Pattern.DOTALL );
m1 = p.matcher("WS90\r\nLLOP KJK\r\nKTYU SIGMET hkjhk");
System.out.println( m1.matches());
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询