不多说,直接上干货!

正则表达式是什么?

  正则表达式是一种可以用于模式匹配和替换的规范, 一个正则表达式就是由普通的字符(例如字符a到z) 以及特殊字符(元字符) 组成的文字模式, 它用以描述在查找文字主体时需要匹配的一个或多个字符串。 正则表达式作为一个模板, 将某个字符模式与所搜索的字符串进行匹配 。
  自从jdk1.4推出java.util.regex包, 为我们提供了很好的Java正则表达式应用平台。 
  Pattern和Matcher

Pattern类, 里面列出了全部的正则表达式内容。
  1、逻辑运算符:
    |:管道符.如:x|y表示x或y
    ():捕获组.(abc)|(xyz)表示abc或xyz
  2、边界匹配符:
    ^:从头匹配
    $:从尾匹配

 RegexDemo.java

package zhouls.java.demo.regex;

import java.util.regex.Matcher;//正则表达式
import java.util.regex.Pattern; public class RegexDemo { /*
* 主函数
*/
public static void main(String[] args) {
//判断一个字符串是否是由纯数字组成的
String s = "";
boolean flag = method02(s); if(flag){
System.out.println("字符串是由纯数字组成的");
}else{
System.out.println("字符串不是由纯数字组成的");
}
} /**
* 使用正则表达式来判断
* @param s
* @return
*/
public static boolean method02(String s) {
/*Pattern pattern = Pattern.compile("[0-9]+");
Matcher matcher = pattern.matcher(s);
if(matcher.matches()){
return true;
}*/
if(Pattern.compile("[0-9]+").matcher(s).matches()){
return true;
}
return false;
} /**
* 取字符判断
* @param s
* @return
*/
public static boolean method01(String s) {
char[] chs = s.toCharArray();
boolean flag = true; for(char c : chs){
if(c < '' || c > ''){
flag = false;
break;
}
}
return flag;
}
}

RegexDemo02.scala

package zhouls.java.demo.regex;

import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern; public class RegexDemo02 { /*
* 主函数
*/
public static void main(String[] args) {
//method01(); //method02(); //method03();
boolean flag = "2017-07-15".matches("\\d{4}-\\d{2}-\\d{2}");
System.out.println("字符串日期是否合法:"+flag); String[] arr = "abc12abc123abc1234abc".split("\\d+");
System.out.println(Arrays.toString(arr)); String ss = "abc12abc123abc1234abc".replaceAll("\\d+", "_");
System.out.println(ss);
} /**
* 替换
*/
public static void method03() {
String s = "abc12abc123abc1234abc";
String regex = "\\d+";
String ss = Pattern.compile(regex).matcher(s).replaceAll("_");
System.out.println(ss);
} /**
* 根据正则表达式进行拆分
*/
public static void method02() {
String s = "abc12abc123abc1234abc";
String regex = "\\d+";
String[] arr = Pattern.compile(regex).split(s);
System.out.println(Arrays.toString(arr));
} /**
* 判断是否匹配
*/
public static void method01() {
//验证字符串是否是指定的格式
String s = "2017-07-15";
String regex = "\\d{4}-\\d{2}-\\d{2}";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(s);
if(matcher.matches()){
System.out.println("字符串日期合法");
}else{
System.out.println("字符串日期不合法");
}
}
}

牛客网Java刷题知识点之正则表达式(Matcher、Pattern)的更多相关文章

  1. 牛客网Java刷题知识点之为什么HashMap和HashSet区别

    不多说,直接上干货! HashMap  和  HashSet的区别是Java面试中最常被问到的问题.如果没有涉及到Collection框架以及多线程的面试,可以说是不完整.而Collection框架的 ...

  2. 牛客网Java刷题知识点之为什么HashMap不支持线程的同步,不是线程安全的?如何实现HashMap的同步?

    不多说,直接上干货! 这篇我是从整体出发去写的. 牛客网Java刷题知识点之Java 集合框架的构成.集合框架中的迭代器Iterator.集合框架中的集合接口Collection(List和Set). ...

  3. 牛客网Java刷题知识点之Map的两种取值方式keySet和entrySet、HashMap 、Hashtable、TreeMap、LinkedHashMap、ConcurrentHashMap 、WeakHashMap

    不多说,直接上干货! 这篇我是从整体出发去写的. 牛客网Java刷题知识点之Java 集合框架的构成.集合框架中的迭代器Iterator.集合框架中的集合接口Collection(List和Set). ...

  4. 牛客网Java刷题知识点之ArrayList 、LinkedList 、Vector 的底层实现和区别

    不多说,直接上干货! 这篇我是从整体出发去写的. 牛客网Java刷题知识点之Java 集合框架的构成.集合框架中的迭代器Iterator.集合框架中的集合接口Collection(List和Set). ...

  5. 牛客网Java刷题知识点之垃圾回收算法过程、哪些内存需要回收、被标记需要清除对象的自我救赎、对象将根据存活的时间被分为:年轻代、年老代(Old Generation)、永久代、垃圾回收器的分类

    不多说,直接上干货! 首先,大家要搞清楚,java里的内存是怎么分配的.详细见 牛客网Java刷题知识点之内存的划分(寄存器.本地方法区.方法区.栈内存和堆内存) 哪些内存需要回收 其实,一般是对堆内 ...

  6. 牛客网Java刷题知识点之HashMap的实现原理、HashMap的存储结构、HashMap在JDK1.6、JDK1.7、JDK1.8之间的差异以及带来的性能影响

    不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑          ...

  7. 牛客网Java刷题知识点之UDP协议是否支持HTTP和HTTPS协议?为什么?TCP协议支持吗?

    不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑          ...

  8. 牛客网Java刷题知识点之TCP、UDP、TCP和UDP的区别、socket、TCP编程的客户端一般步骤、TCP编程的服务器端一般步骤、UDP编程的客户端一般步骤、UDP编程的服务器端一般步骤

    福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑         Java全栈大联盟   ...

  9. 牛客网Java刷题知识点之Java 集合框架的构成、集合框架中的迭代器Iterator、集合框架中的集合接口Collection(List和Set)、集合框架中的Map集合

    不多说,直接上干货! 集合框架中包含了大量集合接口.这些接口的实现类和操作它们的算法. 集合容器因为内部的数据结构不同,有多种具体容器. 不断的向上抽取,就形成了集合框架. Map是一次添加一对元素. ...

随机推荐

  1. 【LeetCode】Find Minimum in Rotated Sorted Array 在旋转数组中找最小数

    Add Date 2014-10-15 Find Minimum in Rotated Sorted Array Suppose a sorted array is rotated at some p ...

  2. MySQL_各城市在线产品天订单数据20161130

    #sealreport010 `tb010_02d`各城市在线产品天订单数据 #sealreport010 `tb010_02d`各城市在线产品天订单数据 SELECT d.ID,a.城市,a.在线日 ...

  3. 一次LVS+MySQL的主主负载均衡实战

    这是去年做的一个项目的记录,如果大家有更好的解决方案,欢迎指出. 先说说项目需求,用户需要在两个地市部署两套应用系统和两套数据库,在一个地市主用,在另一个热备:数据要互备:而且如果主用地市流量很大,可 ...

  4. Ubuntu下mysql修改连接超时wait_timeout

    命令行登入mysql show variables like '%timeout%':(其中有用的是: interactive_timeout  和wait_timeout  为28800,默认为8小 ...

  5. Jmeter提取响应数据的结果保存到本地的一个文件

    原文地址: https://www.cnblogs.com/whitewasher/p/9504728.html 当做性能压测时,可能会需要把响应数据的一些字段统计出来.这里简单介绍一下. 1.首先把 ...

  6. 转载:SharePoint 2010 自定义 字段 类型--------省市区联动

    最近有几个朋友问到了有关自定义字段类型的问题,为了让更多的人了解自定义字段类型的方法,特写一篇博客与大家分享,首先看一下解决方案目录 创建自定义类型分以下几个步骤: 第一步:添加SharePoint映 ...

  7. JSON 生成 C# Model

    http://www.cnblogs.com/tianqiq/p/4309791.html

  8. npm如何删除node_modules文件夹

    npm install rimraf -g 先安装删除工具,然后使用删除命令 rimraf node_modules

  9. 后缀数组dc3算法模版(待补)

    模版: ; #define F(x) ((x)/3+((x)%3==1?0:tb)) #define G(x) ((x)<tb?(x)*3+1:((x)-tb)*3+2) int wa[maxn ...

  10. 附近wifi都是你的

    今天给大家介绍deauth攻击. 最终效果:附近你指定的任何wifi,别人都无法连接,即便连接上的也会断掉. 由于我在 “世界虽大,但没有破不了的wifi”  这篇文章中写的很详细,所以我在这里就步详 ...