正则表达式

常用匹配规则

[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成神之——正则表达式基本使用的更多相关文章

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

    java中String的用法 String基本用法 String分割 String拼接 String截取 String换行符和format格式化 String反转字符串和去除空白字符 String获取 ...

  2. 转载_2016,Java成神初年

    原文地址:http://blog.csdn.net/chenssy/article/details/54017826 2016,Java成神初年.. -------------- 时间2016.12. ...

  3. Java成神路上之设计模式系列教程之一

    Java成神路上之设计模式系列教程之一 千锋-Feri 在Java工程师的日常中,是否遇到过如下问题: Java 中什么叫单例设计模式?请用Java 写出线程安全的单例模式? 什么是设计模式?你是否在 ...

  4. java成神之——安全和密码

    安全和密码 加密算法 公钥和私钥加密解密 生成私钥和公钥 加密数据 解密数据 公钥私钥生成的不同算法 密钥签名 生成加密随机数 基本用法 指定算法 加密对象 SealedObject Signatur ...

  5. java成神之——网络编程基本操作

    网络编程 获取ip UDP程序示例 TCP程序 结语 网络编程 获取ip InetAddress id = InetAddress.getLocalHost(); // InetAddress id ...

  6. java成神之——MySQL Connector/J 的基本使用

    使用示例 DBCP连接池 结语 使用示例 public class demo { static Connection con = null; static Statement st = null; s ...

  7. java成神之——线程操作

    线程 Future CountDownLatch Multithreading synchronized Thread Producer-Consumer 获取线程状态 线程池 ThreadLocal ...

  8. java成神之——Fork/Join基本使用

    Fork/Join 大任务分小任务,小任务结果合并 ForkJoinPool pool = new ForkJoinPool(); RecursiveTask<Integer> task1 ...

  9. java成神之——HttpURLConnection访问api

    HttpURLConnection 访问get资源 访问post资源 访问Delete资源 获取状态码 结语 HttpURLConnection 访问get资源 HttpURLConnection c ...

随机推荐

  1. Annotation: 代码的修饰符

    Table of Contents 简介: 是什么, 用途, 为什么有用 使用: 一个简单例子,如@Override.系统提供的annotation,做成列表 定义新的annotation. 涉及到的 ...

  2. Job for docker.service failed because the control process exited with error code. See "systemctl status do cker.service" and "journalctl -xe" for details.

    问题出现 :入手操作Docker时,安装启动后报了这个错 Job for docker.service failed because the control process exited with e ...

  3. 使用ZooKeeper实现Java跨JVM的分布式锁(优化构思)

    一.使用ZooKeeper实现Java跨JVM的分布式锁 二.使用ZooKeeper实现Java跨JVM的分布式锁(优化构思) 三.使用ZooKeeper实现Java跨JVM的分布式锁(读写锁) 说明 ...

  4. IE浏览器兼容 css之bug 问题

    bug的几种常见原因: 1.盒模型bug      原因:没有正确声明doctype(如果没有声明doctype,各浏览器对代码的解析有不同的规范).解决方法:使用严格的doctype声明. 2.各浏 ...

  5. C/C++开发android应用

    (转自:http://blog.csdn.net/srplab1/article/details/7617963) 在某些情况下,比如原来与很多c/c++的代码, 可能希望采用c/c++编写andro ...

  6. MySQL Multi-Range Read

    MySQL 5.6版本提供了很多性能优化的特性,其中之一就是 Multi-Range Read 多范围读(MRR) , 它的作用针对基于辅助/第二索引的查询,减少随机IO,并且将随机IO转化为顺序IO ...

  7. ubuntu下搭建hadoop平台

    终于把单击模式跟伪分布式模式搭建起来了,记录于此. 1.SSH无密码验证配置 因为伪分布模式下DataNode和NameNode均是本身,所以必须配置SSH localhost的无密码验证. 第一步, ...

  8. String、StringBuffer、StringBuilder分析(jdk8)

    以下代码只挑选了关键方法进行分析 public final class String //String类不可继承,实现了序列化 implements java.io.Serializable, Com ...

  9. keras&tensorflow+分布式训练︱实现简易视频内容问答框架

    内容来源:Keras 之父讲解 Keras:几行代码就能在分布式环境训练模型 把 Keras API 直接整合入 TensorFlow 项目中,这样能与你的已有工作流无缝结合.至此,Keras 成为了 ...

  10. ASP调用存储过程访问SQL Server

     ASP调用存储过程访问SQL Server 2011-02-15 10:22:57 标签:asp 数据库 sQL 存储过程 Server ASP和存储过程(Stored Procedures)的文章 ...