Java 기초 --- 정규 표현 식

19242 단어 필기 하 다.
정규 표현 식 1. 개술.1. 개념: 정규 표현 식 은 일정한 규칙 에 부합 되 는 표현 식 입 니 다.2. 특징: 일부 특정한 기호 로 코드 조작 을 나타 낸다.이렇게 해서 글 씨 를 간소화 하 였 다.그래서 정규 표현 식 을 배 우 는 것 은 특수 기호의 사용 을 배 우 는 것 이다.3. 역할: 문자열 을 전문 적 으로 조작 합 니 다.4. 장점: 문자열 에 대한 조작 을 간소화 할 수 있 습 니 다.6. 단점: 기호 가 많 을 수록 읽 기 가 떨어진다.2. 정규 표현 식 에서 흔히 볼 수 있 는 일치 규칙 입 니 다.
문자      x 문자 x      \ 역 사선 문자      \t 탭 문자 ('\ u0009')       새 줄 (줄 바 꿈) 문자 ('\ u000A')      \r Enter 부호 ('\ \ u000D')      \e 전의 부호 ('\ \ u001B')
2. 문자 클래스      [abc] a, b 또는 c (단순 클래스)      [^ abc] a, b 또는 c 를 제외 한 모든 문자      [a - zA - Z] a 에서 z 또는 A 에서 Z 까지 두 글자 가 포함 되 어 있 습 니 다 (범위)      [a - d [m - p] a 에서 d 또는 m 에서 p: [a - dm - p] (집합)      [a - z & & [def] d, e 또는 f (교차)      [a - z & & [^ bc] a 에서 z 까지 b 와 c: [ad - z] (빼 기)      [a - z & & [^ m - p] a 에서 z, m 에서 p: [a - lq - z] (빼 기)
3. 미리 정 의 된 문자 클래스      . 모든 문자 (줄 끝 문자 와 일치 할 수도 있 고 일치 하지 않 을 수도 있 습 니 다)      \d 숫자: [0 - 9]      \D 비 숫자: [^ 0 - 9]      \s 공백 문자: [\ t \ x0B \ f \ r]      \S 비 공백 문자: [^ \]      \w 단어 문자: [a - zA - Z 0 - 9]      \W 비 단어 문자: [^ \ w]
4. 경계 정합 기      ^ 줄 의 첫머리      $ 행 의 끝      \단어 경계      \B 비 단어 경계      \A 입력 의 시작      \G 의 이전 일치 하 는 끝      \Z 입력 의 끝 은 마지막 끝 문자 에 만 사 용 됩 니 다 (있 으 면)      \z 입력 의 끝
5. Greedy 수량 어      X? X, 한 번 또는 한 번 도 없다.      X * X, 0 회 또는 여러 번      X + X, 한 번 또는 여러 번      X {n} X, 마침 n 회      X {n,} X, 최소 n 회      X {n, m} X, 적어도 n 번 이지 만 m 번 을 초과 하지 않 습 니 다.
6. 그룹 과 캡 처 캡 처 그룹 은 왼쪽 에서 오른쪽으로 괄호 를 계산 하여 번 호 를 매 길 수 있 습 니 다.예 를 들 어 표현 식 (A) (B (C))) 에 다음 과 같은 그룹 이 네 개 있 습 니 다.      1 ((A)(B(C)))       2 \A       3 (B(C))       4 (C)
정규 표현 식 기능 예제: 일치, 절단, 교체, 가 져 오기.
package      ;

import java.io.IOException;
import java.io.InputStream;

/**
 * 
 * @author ZHANGYU
 *           :          。
 *        :                。        。
 *                            。
 *        :        。
 *        :           
 *        :         。
 *    : qq     。
 *    :5-15       0            。
 *
 *      :
 *  1   :String matches  。          ,              ,  false
 *
 */

public class test1 {

    public static void main(String[] args) throws IOException{
        String qq="123456789a";
        Check1(qq);
        check2(qq);
        check3(qq);//    qq 
        checkTel();//     
        splitDemo("zhang.li.wang","\\.");//  .  
        splitDemo("zhang li   wang"," +");//        。
        splitDemo("c:\\a\\d\\c.txt","\\\\");
        splitDemo("asddsjjlkwwaao","(.)\\1");//    。          ,           , ()  ,        
        splitDemo("asddsjjjlkwwwsaao","(.)\\1+");// 1  ,            ,
(n ) 。
String str="sd324234df54345345fgt4343fd435234";// # replaceAllDemo(str,"\\d{5,}","#");// 5 5 # String str1="sdsddwekkl"; replaceAllDemo(str1,"(.)\\1+","#");// # } private static void replaceAllDemo(String str, String strRegx, String newstr) { // TODO Auto-generated method stub str=str.replaceAll(strRegx, newstr); System.out.println(str); } private static void splitDemo(String str,String strReg) { // TODO Auto-generated method stub String[] s=str.split(strReg); for(String i:s){ System.out.println(i); } } /* * : * :13xxxxx 15xxxxx 18xxxxx */ private static void checkTel() { // TODO Auto-generated method stub String tel="13888882134"; String telReg="1[358]\\d{9}"; boolean flage=tel.matches(telReg);// 。 System.out.println("tel:"+ flage); } // QQ private static void check3(String qq) { // TODO Auto-generated method stub //String regex="[1-9][0-9]{4,14}"; String regex="[1-9]\\d{4,14}"; boolean flage=qq.matches(regex); if(flage==true) System.out.println("qq:"+qq); else System.out.println(" "); } private static void check2(String qq) { // TODO Auto-generated method stub if(qq.length()>=5&&qq.length()<=15){ if(!(qq.startsWith("0"))){ try{ Long l=Long.parseLong(qq); System.out.println(" "); }catch(NumberFormatException e){ System.out.println(" "); } } else{ System.out.println(" 0"); } }else System.out.println(" "); } private static void Check1(String qq) { // TODO Auto-generated method stub if(qq.length()>=5&&qq.length()<=15){ if(!(qq.startsWith("0"))){ char[] ch=qq.toCharArray(); boolean flage=false; for(int i=0;iif(ch[i]>='0'&&ch[i]<='9') flage=true; else flage=false; } if(flage==true){ System.out.println(" "); } else System.out.println(" "); } else{ System.out.println(" 0"); } }else System.out.println(" "); } }

가 져 오기 기능 의 예제:
package      ;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/*
 *         :  
 * 
 * 
 *     :
 * 1、           。
 * 2、                。
 * 3、   ,        。
 * 4、                。  :  。
 */
public class test3 {

    public static void main(String[] args){
        Regx();
    }
    public static void Regx(){
        String str="hahaha lwa kd sdi d s ds ew ssd";

        String reg="\\b[a-z]{3}\\b";

        //        。
        Pattern p=Pattern.compile(reg);

        //                。
        Matcher m=p.matcher(str);//  String   matches  ,    Pattern Matcher      
                                 //    String     ,       ,        。
        //m.find()//          ,            。
        while(m.find()){

        System.out.println(m.group());//          。
        System.out.println(m.start()+"-----"+m.end());
        }

    }
}

정규 표현 식 약간의 연습.
연습 1:
package      ;
/*
 *   :         :     。
 * 
 *              ?      ?
 *     :
 * 1、              ,    。
 * 2、                 ,  。
 * 3、                    。  ,         。
 * 4、              。  。         。
 * 
 */
public class test4 {

    public static void main(String[] args){
        String str="  ...  ...  ...  .......     ....  ...  ...  .... ";
        /*
         *   :
         *                 --  。
         * 1、    .  
         * 2、               。
         * 
         */
        str=str.replaceAll("\\.+", "");
        System.out.println(str);
        str=str.replaceAll("(.)\\1+", "$1");
        System.out.println(str);
    }
}

연습 2:
package      ;

import java.util.TreeSet;

public class test5 {

    public static void main(String[] args){

        ipSort();
        emal();
    }

    private static void emal() {
        // TODO Auto-generated method stub
        /*
         *          
         * 
         */
        String str="[email protected]";

        String Regx="[a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\\.[a-zA-Z0-9_]+)+";//         

        String Regx1="\\w+@\\w+(\\.\\w+)+";//           


        System.out.println(str.matches(Regx));
    }

    private static void ipSort() {
        // TODO Auto-generated method stub
        /*
         * 192.168.1.254    102.49.23.013     10.10.10.10   2.2.2.2.  8.109.90.30
         *  ip          。
         * 
         *            ,              。
         * 1、           0    ,              
         * 2、         ,     ip          。
         */
        String ip="192.168.1.254    102.49.23.013     10.10.10.10   2.2.2.2.  8.109.90.30";

        ip=ip.replaceAll("(\\d+)", "00$1");
        System.out.println(ip);

        ip=ip.replaceAll("0*(\\d{3})", "$1");
        System.out.println(ip);

        String[] arr=ip.split(" +");

        TreeSet ts=new TreeSet();

        for(String s:arr)
            ts.add(s);
        for(String s:ts)
            System.out.println(s.replaceAll("0*(\\d+)", "$1"));

    }
}

연습 3: 메 일 주 소 를 가 져 옵 니 다.
package      ;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/*
 *     (  )
 */
public class test6 {

    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
         getMile();
         getMile_1();

    }

    private static void getMile_1() throws Exception {
        // TODO Auto-generated method stub
        URL url=new URL("    ");//        
        URLConnection conn=url.openConnection(); //       
        BufferedReader bufr=new BufferedReader(new InputStreamReader(conn.getInputStream()));//           
        String regx="\\w+@\\w+(\\.\\w+)+";
        Pattern p=Pattern.compile(regx);//  Pattern  ,         
        String line=null;
        while((line=bufr.readLine())!=null){
            Matcher m=p.matcher(line);
            while(m.find())
            System.out.println(m.group());
        }

    }

    private static void getMile() throws Exception {
        // TODO Auto-generated method stub
        BufferedReader bur=new BufferedReader(new FileReader("mail.txt"));
        String line=null;
        String regx="\\w+@\\w+(\\.\\w+)+";
        Pattern p=Pattern.compile(regx);
        while((line=bur.readLine())!=null){
            Matcher m=p.matcher(line);
            while(m.find())
            System.out.println(m.group());
        }
    }

}

좋은 웹페이지 즐겨찾기