多语言展示
当前在线:555今日阅读:167今日分享:27

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

正则表达式也是一种语言,在解析字符串领域独领风骚。本文分享关于正则表达式中最常用的关键字\d、\D及[]的用法
工具/原料
1

IntelliJ IDEA

2

Java

3

Regular expressions

方法/步骤
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 input = Arrays.asList('Hello1!', 'Hello0!');        System.out.println(isMatch(input, regexStr));    }    private static boolean isMatch(List 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;    }}

2

执行下看看结果。trueOK要是两位数字呢?

3

更改下代码Code:List 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

4

来看看\D,这个除数字,其它的任意字符都可以,汉字、空格、\b、\t、\r、\f、\n、下划线什么的都ok了改下代码Code:String regexStr = 'Hello\\D!';List input = Arrays.asList('Hello汉!', 'Hello !', 'Hello !',        'Hello\b!', 'Hello\t!', 'Hello\'!'        , 'Hello\r!', 'Hello\f!', 'Hello\n!',        'Hello_!', 'Hello-!');

5

执行下看看结果Output:true好强大啊。除不能匹配数字,什么都样的字符都可以啊

6

细心的同学是不是已经发现\d和\D加组合起来, 是不是可以匹配任意组合了是的就是这样的更改下代码Code:String regexStr = 'Hello[\\D\\d]!';List input = Arrays.asList('Hello7!', 'Hello汉!', 'Hello !', 'Hello !',

7

细心的tx已经发现,更改的一的代码中使用英文中括号。英文中括号也是正则表达式的保留字符,就是圈定一个范围,这个范围内的字符之间是或的关系“[\\D\\d]”,这个中括号中圈定了两类字符 \D和\d,只要是任意一类就可以,在此处表示任意字条因此,更改后的代码,执行后的返回值应该为true,表示全部匹配执行下看看结果Output:true与预期一致OK

推荐信息