MENU

RegularExpressions——正则表达式

July 26, 2018 • Read: 257 • Java

  • 用途

    • 字符串匹配(字符匹配)
    • 字符串查找
    • 字符串替换
  • 例如:

    • IP地址是否正确
    • 从网页中揪出email地址
    • 从网页中揪出链接等
    • java.lang.String
    • java.util.regex.Pattern
    • java.util.regex.Matcher

初识正则表达式

import java.util.regex.*;
public class TestReg {
    public static void main(String[] args) {
        p("abc".matches("..."));//true
        p("a8729a".replaceAll("\\d","-"));//a----a
        Pattern p = Pattern.compile("[a-z]{3}");
        Matcher m = p.matcher("fgh");
        p(m.matches());//true
    }
    public static void p(Object o) {
        System.out.println(o);
    }
}

matches

import java.util.regex.*;
public class TestReg {
    public static void main(String[] args) {
        p("a".matches("."));//.代表任意一个字符
        p("aaa".matches("a*"));//*代表a0个或多个
        p("a".matches("a+"));//+代表a一个或多个
        p("a".matches("a?"));//?代表a一个或一个也没有
        p("12496218225".matches("\\d{11}"));//恰好11个数字
        p("12496218225".matches("\\d{9,}"));//至少12个数字
        p("12496218225".matches("\\d{3,11}"));//至少3个数字,不超过11个数字
        p("192.168.0.0".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"));
        p("192".matches("[0-2][0-9][0-9]"));//第一位数字范围是0-2,第二位是...第三位是...
    }
    public static void p(Object o) {
        System.out.println(o);
    }
}

范围

import java.util.regex.*;
public class TestReg {
    public static void main(String[] args) {
        p("a".matches("[abc]"));//abc中的一个true
        p("a".matches("[^abc]"));//不包含abc中的任意一个false
        p("a".matches("[a-zA-Z]"));//范围true
        p("a".matches("[a-z]|[A-Z]"));//或者true
        p("a".matches("[a-z[A-Z]]"));//效果同上面一样,或者true
        p("a".matches("a-z&&[RPG]"));//交集false
    }
    public static void p(Object o) {
        System.out.println(o);
    }
}
最后编辑于: October 7, 2018
Archives Tip
QR Code for this page
Tipping QR Code
Leave a Comment