Java 常用正则表达式与测试
正则表达式常用于字符的验证,
常用的正则表达式:
正则表达式 | 意义 | 例 |
---|---|---|
任意字符 | 与正则表达式一致 | |
\ | 单斜杠 \ | |
\t | 制表符 | |
\n | 换行 | |
单个字符 | ||
[abc] | 包括a、b或c三个字符中的一个 | |
[^abc] | a、b或c三个字符外的其他字符 。(非) | |
[a-zA-Z] | 小写a至z或A至Z | |
[0-9] | 0-9的数字 | |
. | (点) 任意字符 | |
\d(\d) | 0-9(数字字符 ) | |
\D(\D) | 相当于[^0-9], 非数字字符 。 | |
\s | 空格、 换行或者制表符中的一个 | |
\S | 非空格、换行或者制表符 | |
\w | [0-9a-z_A-Z]0-9,a-z,A-Z,下划线中的字符 | |
\W | 非0-9,a-z,A-Z中的字符 | |
数量 | ||
表达式? | 出现0或1次 | |
表达式* | 出现0次,1次或多次 | |
表达式+ | 出现1次或多次 | |
表达式{n} | 出现n次 | regex = “\\d{5}” // 5位数字 |
表达式{n,} | 出现n次以上 | regex = “\\w{5,}” // 5位以上字符 |
表达式{n,m} | 出现n至m次 | regex = “\\w{5,10}” // 5至10位字符 |
() | 正则表达式组 | |
表达式1表达式2 | 两个表达式“和”运算 | |
表达式1||表达式2 | 两个表达式 “与”运算 | |
// 正则表达式 日期 以下对月进行了限制 月只能 01-12之间; 日没有做数值的限制
regex = "\\d{4}-(([0][1-9])||([1][012]))-\\d{2}"; // 正则表达式 日期
String 与正则相关的方法
返回值 | 方法 | 说明 |
---|---|---|
boolean | String.matches(strregex) | 正则表达式判断 |
String.replaceAll(String regex, String replacement) | 正则表达式替换,全部替换 | |
String.replaceFirst(regex, replacement); | 替换首个 | |
String[] | String.split(regex); | 字符串分解,以标记字符分解为一个字符串数组 |
正则表达式测试:
public class RegexDemo {/*** */public RegexDemo() {// TODO 自动生成的构造函数存根}/*** @param args*/public static void main(String[] args) {// TODO 自动生成的方法存根//String str = "a"; // 需要验证的字符String regex = "[abc]"; // 正则表达式System.out.println(str.matches(regex)); // trueregex = "[^abc]"; // 正则表达式System.out.println(str.matches(regex)); // falseregex = "[0-9]"; // 正则表达式System.out.println(str.matches(regex)); // falsestr = "9";System.out.println(str.matches(regex)); // truestr = "99";System.out.println(str.matches(regex)); // false 因为只验证一位,再在输入了2位数字:99regex = "[0-9]{2}"; // 正则表达式 2位数字System.out.println(str.matches(regex)); // true str = "999999";regex = "\\d"; // 正则表达式 1位数字System.out.println(str.matches(regex)); // falseregex = "\\d{6}"; // 正则表达式 6位数字System.out.println(str.matches(regex)); // truestr = "9999_99";System.out.println(str.matches(regex)); // falseregex = "\\w{6}"; // 正则表达式 6位字符 a-z A-Z _(和下划线)System.out.println(str.matches(regex)); // falseregex = "\\w{6,}"; // 正则表达式 6位以上 字符 a-z A-Z _(和下划线)System.out.println(str.matches(regex)); // trueregex = "\\w{6,8}"; // 正则表达式 6-8位 字符 a-z A-Z _(和下划线)System.out.println(str.matches(regex)); // truestr = "12345";System.out.println(str.matches(regex)); // false 字符串少于6位了regex = "\\d+(\\.\\d+)?"; // 正则表达式 小数 (\\.\\d+) 点与小数为一组同时出现 ; ? 小数点与小数出现0次或1次str = "12345.123";System.out.println(str.matches(regex)); // truestr = "12345";System.out.println(str.matches(regex)); // truestr = "0.123";System.out.println(str.matches(regex)); // truestr = "12345.";System.out.println(str.matches(regex)); // falsestr = "a12345.1";System.out.println(str.matches(regex)); // falsestr = "12345.a1";System.out.println(str.matches(regex)); // false// 日期验证的测试regex = "\\d{4}-\\d{2}-\\d{2}"; // 正则表达式 日期str = "2020-06-09";System.out.println(str.matches(regex)); // truestr = "2020-16-09";System.out.println(str.matches(regex)); // trueregex = "\\d{4}-(([0][1-9])||([1][012]))-\\d{2}"; // 正则表达式 日期System.out.println(str.matches(regex)); // falsestr = "2020-01-09";System.out.println(str.matches(regex)); // truestr = "2020-10-09";System.out.println(str.matches(regex)); // truestr = "2020-12-09";System.out.println(str.matches(regex)); // truestr = "2020-00-09";System.out.println(str.matches(regex)); // falsestr = "2020-13-09";System.out.println(str.matches(regex)); // false}}
例:使用替换方法 返回只包含字母的字符串
public class RegexDemo2 {/*** @param args*/public static void main(String[] args) {// TODO 自动生成的方法存根// 返回一个全部是字母的字符串String str = "asc123deAQE#@¥%";String regex = "[^a-zA-Z]+"; // 正则表达式 非字母字符System.out.println(str.replaceAll(regex, "")); // 非字母字符替换为 空 字符串}}
正则开发包
/*** 正则开发包测试* String 继承 正则开发包中的两个类:* java.util.regex.Pattern* java.util.regex.Matcher*/public class PutternDemo {/** 导入正则开发包两个类 */
import java.util.regex.Matcher;
import java.util.regex.Pattern;public PutternDemo() {// TODO 自动生成的构造函数存根}/*** @param args*/public static void main(String[] args) {// TODO 自动生成的方法存根String regex = "[a-zA-Z]+";Pattern pat = Pattern.compile(regex); // 正则接口实例化String str = "abcABC";Matcher mat = pat.matcher(str);// 正则比较System.out.println(mat.matches()); // 比较方法,返回:true}}
Java 常用正则表达式与测试相关推荐
- Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码正则表达式...
Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码校验正则表达式 ============================== ©Copyright 蕃薯耀 2017年11 ...
- Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码校验正
Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码校验正则表达式 ============================== ©Copyright 蕃薯耀 2017年10 ...
- java常用正则表达式整理
常用的正则表达式主要有以下几种: 匹配中文字符的正则表达式:[\u4e00-\u9fa5] 获取日期正则表达式:\d{4}[年|\-|\.]\d{1,2}[月|\-|\.]\d{1,2}日? 匹配 ...
- java 常用正则表达式
匹配中文字符的正则表达式: [\u4e00-\u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^\x00-\xff] 评注:可以用来计算字符串的 ...
- Java常用正则表达式
package com.beike.springboot.other;import java.util.regex.Matcher; import java.util.regex.Pattern;/* ...
- Java 常用正则表达式整理
- java常见正则表达式用法
java常见正则表达式用法 例1: 判断整个字符串是否只有大小写字母和数字 String str = "ABCaaa123GG";String reg = "^[A-Za ...
- Java常用API(三)Pattern 正则表达式
1. 一个用于指定规则的类 正则Regex , 在java中正则形成了一个单独的包 java.util.regex , 代表正则的类 --- Pattern 正则表达式本质上适用于指定匹配或筛选规则的 ...
- java测试开发_测试开发系类之Java常用知识点
测试需要的两门语言:Java,Python 测试开发:开发测试脚本->开发测试框架 Java需要掌握内容:基础语法.Java面向对象相关概念.Java常用类.基础测试框架 Java常用类:IO相 ...
最新文章
- X-Forwarded-For 会少记录一次代理服务器的IP
- OpenGL纹理上下颠倒翻转的三种解决办法(转)
- 大牛书单 | 系统架构方向好书推荐
- 12-思科防火墙:ASA会话超时
- #1406 data too long for column '' at row 1
- mysql有热备设置_Mysql数据热备配置与操作方法
- 【vs2019MFC】msvcrtd.lib(exe_main.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 “int __cdecl invoke_mai
- ssh 连接访问被拒绝
- 【Vue】Vue项目的创建以及饿了么UI的使用
- 高等数学——微分方程
- 服务器 iis ftp配置文件,如何:在 IIS 中创建和配置 FTP 站点
- Flask-SQLAlchemy的使用(详解)
- C#反编译工具:.NET Reflector导出代码
- _kbhit函数详解
- 数学学习在计算机研究领域的作用和重要性
- 数组转化为集合的方式asList()
- android+祖玛游戏源码,unity祖玛游戏Zuma Ball Blast源码
- 关于矩形的边框,以及边框线偶尔不显示的问题
- 190407 逆向-西湖论剑杯
- mysql计算两个日期间的工作时长(参数传入每天上班时间,并剔除周末)