博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正则表达式
阅读量:6687 次
发布时间:2019-06-25

本文共 2458 字,大约阅读时间需要 8 分钟。

正则表达式是对串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串。

正则符号:

含义

符号

数字

[0-9]   \\d

字母

[a-zA-Z]

空白字符

[ \n\t\r\f\x0B]

表示非

[^规则]

任意字符(换行除外)

(点)

正则开始

^

正则结束

$

正则数量:

符号

含义

+

n≥1   1到多个

*

n≥0   0到多个

?

0≤ n ≤1   0或1个

{n}

n个

{n,}

n ≤    n到多个

{n,m}

n≤num ≤m   n到m个

正则逻辑:

含义

符号

分组

()

  |

 什么都不写

 实例1:验证邮箱

public class Judge {    public static void main(String[] args) {        //定义要匹配Email地址的正则表达式        String regex = "\\w+@\\w+(\\.\\w{2,3})*\\.\\w{2,3}";        String str1 = "aaa@";                //定义要进行验证的字符串        String str2 = "aaaaa";        String str3 = "1111@111ffyu.dfg.com";        if(str1.matches(regex)) {            //判断字符串变量是否与正则表达式匹配            System.out.println(str1+"是一个合法的Email地址格式");        }        if(str2.matches(regex)) {            //判断字符串变量是否与正则表达式匹配            System.out.println(str2+"是一个合法的Email地址格式");        }        if(str3.matches(regex)) {            //判断字符串变量是否与正则表达式匹配            System.out.println(str3+"是一个合法的Email地址格式");        }    }}

正则表达式分析:

  通常情况下Email的格式为“X@X.com.cn”。字符X表示任意一个或多个字符,@为邮箱地址中的特有符号,符号@后还有一个或多个字符,之后是字符“.com”或“.cn”。字符集"\\w"匹配任意字符,符号“+”表示字符可以出现一次或多次,表达式"(\\.\\w)*"表示形如“.com”格式的字符串可以出现0次或多次。而最后的表达式“\\.\\w+”用于匹配Email地址中的结尾字符,如“.com”。

实例2:验证手机号

import java.util.Scanner;public class Mobile {    public static void main(String[] args) {        //手机号是11位数字,前3位是136/130开头,后八位是随机数        Scanner input = new Scanner(System.in);        System.out.println("请输入手机号:");        String phoneNumber = input.nextLine();        //规则        String gz = "^(([1][3][6])|([1][3][0]))([0-9]{8})$";        boolean rel = phoneNumber.matches(gz);        if (rel) {            System.out.println("ok");        }else {            System.out.println("no");        }    }}

实例3:验证邮箱

//邮箱zhangsan_.abc@qq.com为例,前缀:字母、数字、下划线、点、减号,@,qq/126/139/sina,com/com.cn/org/cnpublic class EmailJudge {    public static void main(String[] args) {        String str = "asd123@qq.com";        //规则        String gz = "^([0-9a-zA-Z_.-]{3,18})"+"[@]"+"(([q]{2})|([1][2][6])|([1][3][9])|([s][i][n][a]))[.]"        +"(([c][o][m])|([c][n])|([c][o][m][.][c][n]))$";        boolean rel = str.matches(gz);        if (rel) {            System.out.println("ok");        } else {            System.out.println("no");        }    }}

 

转载于:https://www.cnblogs.com/xiaotao520/p/9205720.html

你可能感兴趣的文章
最前线|VIPKID正寻求4-5亿美元新一轮融资,估值达60亿美元
查看>>
文 OR 理?答案都在这里!
查看>>
ES6 Module之export
查看>>
XML+JSON面试题都在这里
查看>>
教你如何攻克Kotlin中泛型型变的难点(实践篇)
查看>>
2018Android面试经历
查看>>
不受限对抗样本挑战赛介绍
查看>>
推荐10个Java方向最热门的开源项目(8月)
查看>>
浅解前端必须掌握的算法(三):直接插入排序
查看>>
[译] TensorFlow 教程 #06 - CIFAR-10
查看>>
处理 JavaScript 复杂对象:深拷贝、Immutable & Immer
查看>>
Kotlin 设计模式系列之单例模式
查看>>
阅读SSH的ERP项目【第二篇】
查看>>
如何有效的避免OOM,温故Java中的引用
查看>>
Objective C基础教程 第一章 启程
查看>>
Android开发人员不得不学习的JavaScript基础(一)
查看>>
阿里云在LC3大会上透露未来要做的两件事
查看>>
关于Socket,看我这几篇就够了(三)原来你是这样的Websocket
查看>>
NSHipster: NSRegularExpression 中文版
查看>>
Android 开发中不得不知道的 Tips 集合 (持续更新 ing)
查看>>