【Java】正则表达式对字符串的一些常用处理

来源:互联网 发布:python跨文件全局变量 编辑:程序博客网 时间:2024/05/22 12:05

**

1. 转义字符:

**
那么这里在列上一些转义字符
\ 反斜杠
\t 间隔 (‘\u0009’)
\n 换行 (‘\u000A’)
\r 回车 (‘\u000D’)
\d 数字 等价于 [0-9]
\D 非数字 等价于 [^0-9]
\s 空白符号 [\t\n\x0B\f\r]
\S 非空白符号 [^\t\n\x0B\f\r]
\w 单独字符 [a-zA-Z_0-9]
\W 非单独字符 [^a-zA-Z_0-9]
\f 换页符
\e Escape
\b 一个单词的边界
\B 一个非单词的边界
\G 前一个匹配的结束

2. Java中常用的正则表达式:

^ 为限制开头
^java 条件限制为以 Java 为开头字符
java 条件限制为以 java 为结尾字符
. 条件限制除 \n 以外任意一个单独字符
java.. 条件限制为 java 后除换行外任意两个字符

加入特定限制条件「 [] 」
[a-z] 条件限制在小写 a to z 范围中一个字符
[A-Z] 条件限制在大写 A to Z 范围中一个字符
[a-zA-Z] 条件限制在小写 a to z 或大写 A to Z 范围中一个字符
[0-9] 条件限制在小写 0 to 9 范围中一个字符
[0-9a-z] 条件限制在小写 0 to 9 或 a to z 范围中一个字符
[0-9[a-z]] 条件限制在小写 0 to 9 或 a to z 范围中一个字符 ( 交集 )

[] 中加入 ^ 后加再次限制条件「 [^] 」
[^a-z] 条件限制在非小写 a to z 范围中一个字符
[^A-Z] 条件限制在非大写 A to Z 范围中一个字符
[^a-zA-Z] 条件限制在非小写 a to z 或大写 A to Z 范围中一个字符
[^0-9] 条件限制在非小写 0 to 9 范围中一个字符
[^0-9a-z] 条件限制在非小写 0 to 9 或 a to z 范围中一个字符
[^0-9[a-z]] 条件限制在非小写 0 to 9 或 a to z 范围中一个字符 ( 交集 )

在限制条件为特定字符出现 0 次以上时,可以使用「 * 」
J* 0 个以上 J
.* 0 个以上任意字符
J.*D J 与 D 之间 0 个以上任意字符

在限制条件为特定字符出现 1 次以上时,可以使用「 + 」
J+ 1 个以上 J
.+ 1 个以上任意字符
J.+D J 与 D 之间 1 个以上任意字符

在限制条件为特定字符出现有 0 或 1 次以上时,可以使用「 ? 」
JA? J 或者 JA 出现

限制为连续出现指定次数字符「 {a} 」
J{2} JJ
J{3} JJJ
文字 a 个以上,并且「 {a,} 」
J{3,} JJJ,JJJJ,JJJJJ,???(3 次以上 J 并存 )
文字个以上, b 个以下「 {a,b} 」
J{3,5} JJJ 或 JJJJ 或 JJJJJ
两者取一「 | 」
J|A J 或 A
Java|Hello Java 或 Hello

「 () 」中规定一个组合类型
比如,我查询 index 中 间的数据,可写作

3. 一些实际的编码应用

 /**     * 检验QQ格式     */    public static void checkQQ(){        String qq ="635520875";        String regex ="[1-9][0-9]{4,14}";//开头不为零        Pattern pattern =Pattern.compile(regex);//获取对象        Matcher matcher=pattern.matcher(qq);//匹配        boolean b=matcher.matches();//判断        if (b){            System.out.println("QQ:"+qq+"  格式正确");        }else{            System.out.println("QQ格式错误");        }        System.out.println("----------QQ检验完成------------------");    }
/*    *需求:    *将下列字符串转成:我要学编程    *到底用四种功能中的哪一个呢?或者哪几个呢?    *思路方式:    *1、如果只想知道该字符串是对是错,使用匹配    *2、想要将已有的字符串变成另一个字符串,替换    *3、想要按照自定的方式将字符串变成多个字符串,切割,获取规则以外的子串    *4、想要拿到符合需求的字符串子串,获取,获取符合规则的子串    **/    public static void replace(){        String str="我我我我我我...要要要要要要要要要......学学学学学学学.....编编编编编编编...程程程程........";        String regex="\\.+";        str=str.replaceAll(regex, "");//去掉点        System.out.println(str);            str=str.replaceAll("(.)\\1+", "$1");//去掉重复的字(\1代表第一个括号内的内容,&1也代表第一个括号的内容)        System.out.println(str);    }
原创粉丝点击