java成神之——正则表达式基本使用

Posted 叶家伟的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java成神之——正则表达式基本使用相关的知识,希望对你有一定的参考价值。

正则表达式

常用匹配规则

[abc]       abc其中一个

[^abc]      abc之外的一个

[a-z]       a和z之间的一个
        
.           表示任意字符

d          表示一个数字

D          非数字

w          表示a-zA-Z0-9_

W          非a-zA-Z0-9_

^           开头

$           结尾

          英文单词边界

?           一次或者0次

*           零次或者多次

+           一次或者多次

{n}         出现制定n次 

{n,}        至少n次

{n,m}       >=n <=m 次

基本使用

正则结构
    (d{3})-(d{3})-(d{4})
    ^-----^ ^-----^ ^-----^
    组 1      组 2     组 3

Pattern phonePattern = Pattern.compile("(\d{3})-(\d{3})-(\d{4})");
Matcher phoneMatcher = phonePattern.matcher("abcd800-555-1234wxyz");
phoneMatcher.find();        // 查找一次 true
phoneMatcher.group(0);      // 800-555-1234
phoneMatcher.group(1);      // 800

标记符的使用

常用标记符
    DOTALL              表示.可以代表任意字符包括行终止符,简写?s
    CASE_INSENSITIVE    表示不区分大小写,简写?i

Pattern pattern = Pattern.compile("foo.", Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
或者
Pattern pattern = Pattern.compile("(?si)foo.");

pattern.matcher("FOO
").matches();  // true

部分正则标记

Pattern pattern = Pattern.compile("^\[(a)$");
匹配字符串中有部分特殊的需要转义的字符,除了添加双反斜线以外,还可以如下操作

Pattern pattern = Pattern.compile("^\Q[\E(a)$");
Q 表示起始,E 表示结束
或者
Pattern pattern = Pattern.compile(Pattern.quote("[") + "(a)$");

正则表达式在字符串方法中的使用

matches方法:判断字符串是否满足正则匹配
    String str = "abc";
    boolean b = str.matches("[a].*"); 

split方法:根据正则匹配的规则分隔字符串
    String str = "abc";
    String[] arr = str.split("[b]");                // [a, c]
        
replaceAll方法:将匹配的字符串替换成其他字符
    String str = "abc";
    String str1 = str.replaceAll("[\w]", "1");     // 111

结语

本文章是java成神的系列文章之一

如果你想知道,但是本文没有的,请下方留言

我会第一时间总结出来并发布填充到本文

以上是关于java成神之——正则表达式基本使用的主要内容,如果未能解决你的问题,请参考以下文章

java成神之——enum枚举操作

java成神之——properties,lambda表达式,序列化

java成神之——jaxb操作xml的基本使用

java成神之——Stream和Optional

java成神之——java中string的用法

java成神之——文件IO