首页 > 编程语言 > 详细

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

时间:2018-10-07 15:25:34      阅读:188      评论:0      收藏:0      [点我收藏+]

正则表达式

常用匹配规则

[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 <=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\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成神之——正则表达式基本使用

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!