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

2025-10-27 23:17:05

1、\w:这个关键字代表 一个字母、数字或下划线

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

Code:

package chapter4;

import java.util.Arrays;

import java.util.List;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

/**

* Created by MyWorld on 2016/3/23.

*/

public class RegexStudyDemo {

   public static void main(String[] args) {

       String regexStr = "Hello\\w!";

       List<String> input = Arrays.asList("Hello了!", "Hello3!", "HelloY!", "Hello_!");

       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分钟入门系列之2

2、执行下看看结果:

Hello了!  is not match!

false

java代码就不再介绍了。前面的一篇有

说下“\\w”,不是说好 的"\w",怎么你的代码中变成这两个反斜杠了

先息怒:

\在Java中是保留字符,是转义用的。转义转义,就是把以前的意思改变了

\w中前面就是一个普通的反斜杠,在java中要表达这个意思,就要输入两个\\,其它第一斜杠,是java中的转义符,第二个斜杠是要使用的字符,就是\w前面的这个斜杠了

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

3、不少眼尖的tx已经发现了,上面的代码执行时,返回false

是因为

“Hello\\w!”不能匹配“Hello了!”

即\w不能匹配汉字

童话里都是骗人的,不是说好的,可以匹配汉字的吗。。。

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

4、下划线和中划线比较像,试试

更改下代码

Code:

List<String> input = Arrays.asList("Hello-!", "Hello3!", "HelloY!", "Hello_!");

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

5、执行下看看是否匹配

Output:

Hello-!  is not match!

false

与预期一致。

OK

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

6、试试两个字符和空格,看看行不行

更改代码

Code:

List<String> input = Arrays.asList("Hello33!", "Hello !", "HelloY!", "Hello_!");

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

7、执行下看看结果是不是不匹配

Output:

Hello33!  is not match!

Hello !  is not match!

false

与预期一致

OK

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

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