java 正则表达式基础练习

java 正则表达式基础练习

package com.reviewquestions.review_questions.javaBase;

/**
 * asus 2021/12/2 8:59
 **/
/*
^ 匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与"\n"或"\r"之后的位置匹配。
$ 匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与"\n"或"\r"之前的位置匹配。
* 零次或多次匹配前面的字符或子表达式。例如,zo* 匹配"z"和"zoo"。* 等效于 {0,}。
+ 一次或多次匹配前面的字符或子表达式。例如,"zo+"与"zo"和"zoo"匹配,但与"z"不匹配。+ 等效于 {1,}。
? 零次或一次匹配前面的字符或子表达式。例如,"do(es)?"匹配"do"或"does"中的"do"。? 等效于 {0,1}。
{n} n 是非负整数。正好匹配 n 次。例如,"o{2}"与"Bob"中的"o"不匹配,但与"food"中的两个"o"匹配。
{n,} n 是非负整数。至少匹配 n 次。例如,"o{2,}"不匹配"Bob"中的"o",而匹配"foooood"中的所有 o。"o{1,}"等效于"o+"。"o{0,}"等效于"o*"。
{n,m} m 和 n 是非负整数,其中 n <= m。匹配至少 n 次,至多 m 次。例如,"o{1,3}"匹配"fooooood"中的头三个 o。'o{0,1}' 等效于 'o?'。注意:您不能将空格插入逗号和数字之间。
*/

public class MatcherTest {

    /**
     * 常用正则表达式
     * @param pattern 匹配对象
     * @param mode 匹配模式
     * @return
     */
    public static boolean matcherMethod(String pattern,int mode){
        if (pattern == null){
            mode = 99999;
        }
        boolean matches = false;
        switch(mode){
            case 1 ://1、求非负整数 :
                return matches = pattern.matches("^\\d+$");
            case 2 ://2、匹配正整数:
                return matches = pattern.matches("^[1-9][0-9]*$");
            case 3 ://3、非正整数:
                return matches = pattern.matches("^-[1-9][0-9]*|-0$");
            case 4 ://4、负整数:
                return matches = pattern.matches("^-[1-9][0-9]*$");
            case 5 ://5、整数 :
                return matches = pattern.matches("^[-|+]?(0|[1-9][0-9]*)$");
            case 6 ://6、非负浮点数 :
                return matches = pattern.matches("^[+]?\\d+\\.\\d+$");
            case 7 ://7、正浮点数 有限的情况 00.001不合规范的数也会被匹配
                return matches = pattern.matches("^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$");
            case 8 ://8、非正浮点数
                return matches = pattern.matches("^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$");
            case 9 ://9、浮点数
                return matches = pattern.matches("^(-?\\d+)(\\.\\d+)?$");
            case 10 ://10、有数字、26个英文字母组成的字符串
                return matches = pattern.matches("^[A-Za-z0-9]+$");
            case 11 ://11、验证输入只能是汉字 :
                return matches = pattern.matches("^[\\u4e00-\\u9fa5]{0,}$");
            default :
                System.out.println("请输入正确的参数");
                return false;
        }
    }
    public static void main(String[] args) {
        boolean result = MatcherTest.matcherMethod("宿", 11);
        System.out.println(result);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值