Java正则表达式

Java正则表达式

package anomyous;


public class Test {



    public static void main(String[] args) {
        String mail="123456789@qq.com";
        String phone="18195956560";


        boolean isMail=mail.matches("[a-zA-Z0-9]+@[a-zA-Z0-9]+.(com)$");
        //对上面表达式进行详细讲解 [a-zA-Z0-9]表示所有字母和数字,[]表示对一个字符的限定条件,+表示前面的字符出现1次或多次
        //@ 没特殊含义,就是一个字符,(com)$ 表示 "com"在字符串结尾,()表示将括号内的字符作为一个整体处理(类似于当一个字符处理)


        boolean isPhone=phone.matches("^1[3-9][0-9]{9}");
        //^1: 字符1作为开头   [3-9]:这个字符是3~9中的一个,[0-9]同理  {9}:前一个字符出现9次 [0-9]{9}也就表示9个数字字符


        boolean isMail2=mail.matches("[a-zA-Z\\d]+@[a-zA-Z\\d]+.(com)$");//这是第二种写法
        // "\\d"(正则表达式里是\d,但Java字符串中"\"有转义作用,一般不单独使用,表示"\"需要用"\\",及使用转义字符消除"\"的特殊含义)替换了0-9
        boolean isPhone2=phone.matches("^1[3-9]\\d{9}");//这是第二种写法
        System.out.println(isMail);
        System.out.println(isPhone);
        System.out.println(isMail2);
        System.out.println(isPhone2);

    }
}
package anomyous;

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


public class Test {



    public static void main(String[] args) {
        String input1 = "thebeginning";
        String input2 = "thebeg";
        System.out.println(isPassword(input1));
        System.out.println(isPassword(input2));
    }
    private static boolean isPassword(String s){
        String parrent="^[a-zA-Z]\\w{6,18}"; //^[a-zA-Z]: 以字母开头(大小写都可以), "\\w"表示"\w ,表示一个数字字符 或 字母 或 下划线
        // {6,18}:前面的字符6~18次",及后面要有6~18的一般字符,加上开头一个字符,字符串至少为7位
        return match(parrent,s);
    }

    // 返回str是否匹配正则表达式parren
    private static boolean match(String parren,String str){
        Pattern pattern=Pattern.compile(parren);//正则表达式对象,通过compile将原本为字符串的正则表达式转换为对象,
        // 同时对正则表达式进行了编译,为了更快进行匹配
        Matcher matcher=pattern.matcher(str);
        return matcher.matches();//返回匹配结果对象
    }
}

贪婪与非贪婪

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

public class App {
    public static void main(String[] args) {

        // 按指定模式在字符串查找
        String line = "abcdef123456ghi";
        // String pattern = "([a-z]+).*([a-z]+)";//贪婪匹配
        String reg = "([a-z]+).*?([a-z]+)";//非贪婪匹配

        Pattern r = Pattern.compile(reg);
        
        Matcher m = r.matcher(line);
        if (m.find()) {
            System.out.println("Found all: " + m.group(0));
            System.out.println("Found grounp(1): " + m.group(1));
            System.out.println("Found grounp(2): " + m.group(2));
        } else {
            System.out.println("No found");
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值