当前位置:编程学习 > JAVA >>

Java 正则表达式问题

1.以"WS"开头,第5个单词为SIGMET,单词间以空格或者回车换行区分
2.以(开头,后面第10到15个字符为NOTAMN或NOTAMC或NOTAMR Java 正则表达式 --------------------编程问答--------------------

        //1.以"WS"开头,第5个单词为SIGMET,单词间以空格或者回车换行区分//涉及单词分割,没用正则式
        String str1 = "WSddd aa ddd aaa SIGMET  223";
        if(null != str1&&str1.startsWith("WS")){
            String[] strArr = str1.split("\\s");
            if(strArr.length >= 5&&strArr[4].equals("SIGMET"))
            {
                System.out.println("Str1 匹配!");
            }
        }
        //2.以(开头,后面第10到15个字符为NOTAMN或NOTAMC或NOTAMR 
        String str2 = "(aaaa3 aaaNOTAMR)";
        Pattern p2 = Pattern.compile("\\(.{9}NOTAM(N|C|R)");
        Matcher m = p2.matcher(str2);
        while (m.find())
        {
            System.out.println(m.group());
        }
--------------------编程问答--------------------
引用 1 楼 oh_Maxy 的回复:

        //1.以"WS"开头,第5个单词为SIGMET,单词间以空格或者回车换行区分//涉及单词分割,没用正则式
        String str1 = "WSddd aa ddd aaa SIGMET  223";
        if(null != str1&&str1.startsWith("WS")){
            String[] strArr = str1.split("\\s");
            if(strArr.length >= 5&&strArr[4].equals("SIGMET"))
            {
                System.out.println("Str1 匹配!");
            }
        }
        //2.以(开头,后面第10到15个字符为NOTAMN或NOTAMC或NOTAMR 
        String str2 = "(aaaa3 aaaNOTAMR)";
        Pattern p2 = Pattern.compile("\\(.{9}NOTAM(N|C|R)");
        Matcher m = p2.matcher(str2);
        while (m.find())
        {
            System.out.println(m.group());
        }


谢谢哥们,其实我想要的是两个正则表达式 --------------------编程问答-------------------- 第二个正则式应该符合要求吧?第一个想了下,这样应该可以:

        //1.以"WS"开头,第5个单词为SIGMET,单词间以空格或者回车换行区分
        String str1 = "WS222 aa ddd aaa SIGMET  223";
        Pattern p1 = Pattern.compile("WS\\w*\\s+(\\w+\\s+){3}SIGMET($|\\s+.*)");
        Matcher m1 = p1.matcher(str1);
        while (m1.find())
        {
            System.out.println(m1.group());
        }
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,