正则表达式30分钟入门系列之4

2025-10-26 21:41:25

1、\d:这个关键字匹配 任意的一位数字,只是一位哦

\D:这个关键字匹配 任意非数字的字符。汉字、换行、制表符、下划线、空格都算哦

先来看看测试的脚手架代码:

Code:

package chapter4;

import java.util.Arrays;

import java.util.List;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class RegexStudyDemo {

   public static void main(String[] args) {        String regexStr = "Hello\\d!";

       List<String> input = Arrays.asList("Hello1!", "Hello0!");

       System.out.println(isMatch(input, regexStr));

   }

   private static boolean isMatch(List<String> inputs, String regexStr) {

       boolean result = true;

       for (String input : inputs) {

           Pattern pattern = Pattern.compile(regexStr);

           Matcher matcher = pattern.matcher(input);

           if (matcher.matches()) {

               continue;

           }

           System.out.println(input + "  is not match!");

           result = false;

       }

       return result;

   }

}

正则表达式30分钟入门系列之4

2、执行下看看结果。

true

OK

要是两位数字呢?

正则表达式30分钟入门系列之4

3、更改下代码

Code:

List<String> input = Arrays.asList("Hello1!", "Hello2!", "Hello23!");

。。。

System.out.println(String.format("%s is not match  %s!", regexStr, input));

执行下看看结果。

Output:

Hello\d! is not match  Hello23!!

false

与预期一致 

OK

正则表达式30分钟入门系列之4

4、来看看\D,这个除数字,其它的任意字符都可以,

汉字、空格、\b、\t、\r、\f、\n、下划线什么的都ok了

改下代码

Code:

String regexStr = "Hello\\D!";

List<String> input = Arrays.asList("Hello汉!", "Hello !", "Hello !",

       "Hello\b!", "Hello\t!", "Hello\"!"

       , "Hello\r!", "Hello\f!", "Hello\n!",

       "Hello_!", "Hello-!");

正则表达式30分钟入门系列之4

5、执行下看看结果

Output:

true

好强大啊。除不能匹配数字,什么都样的字符都可以啊

正则表达式30分钟入门系列之4

6、细心的同学是不是已经发现\d和\D加组合起来, 是不是可以匹配任意组合了

是的

就是这样的

更改下代码

Code:

String regexStr = "Hello[\\D\\d]!";

List<String> input = Arrays.asList("Hello7!", "Hello汉!", "Hello !", "Hello !",

正则表达式30分钟入门系列之4

7、细心的tx已经发现,更改的一的代码中使用英文中括号。

英文中括号也是正则表达式的保留字符,就是圈定一个范围,这个范围内的字符之间是或的关系

“[\\D\\d]”,这个中括号中圈定了两类字符 \D和\d,只要是任意一类就可以,在此处表示任意字条

因此,更改后的代码,执行后的返回值应该为true,表示全部匹配

执行下看看结果

Output:

true

与预期一致

OK

正则表达式30分钟入门系列之4

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢