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

2021-05-15 21:30

阅读:669

标签:大小   结束   替换   str   基本使用   个数   []   数字   判断字符串   

  • 正则表达式
    • 常用匹配规则
    • 基本使用
    • 标记符的使用
    • 部分正则标记
    • 正则表达式在字符串方法中的使用
    • 结语

正则表达式

常用匹配规则

[abc]       abc其中一个

[^abc]      abc之外的一个

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

\d          表示一个数字

\D          非数字

\w          表示a-zA-Z0-9_

\W          非a-zA-Z0-9_

^           开头

$           结尾

\b          英文单词边界

?           一次或者0次

*           零次或者多次

+           一次或者多次

{n}         出现制定n次 

{n,}        至少n次

{n,m}       >=n 

基本使用

正则结构
    (\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\n").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成神之——正则表达式基本使用

标签:大小   结束   替换   str   基本使用   个数   []   数字   判断字符串   

原文地址:https://www.cnblogs.com/ye-hcj/p/9750050.html


评论


亲,登录后才可以留言!