【JavaSE_学习笔记】正则表达式

JavaSE学习笔记21:Java正则表达式 Java正则表达式   1、正则表达式(特点) 正则表达式,顾名思义,就是符合一定规则的表达式。作用是专门用于操作字符串,虽说String类中已经有了很多操作字符串的方法,但是它们的功能单一,操作起来还麻烦,正则弥补了它们的补足。   下面我们通过一个小例子来感受一下区别: 需求:对QQ号码进行校验,要求:5~15位,0不能开头,只能是数字。 (1)常规的做法: class Che 阅读详情

【JavaSE_学习笔记】正则表达式

正则表达式常用的语法:
A:字符

符号意义注意事项
x字符 x :任意的字符
\\反斜线字符在代码中书写正则表达式:——>用两个\代表一个反斜线
\t制表符 (‘\u0009’)
\n新行(换行)符 (‘\u000A’)IO流中要写入换行符号:windows “\r\n”
\r回车符 (‘\u000D’)

B:字符类

符号意义
[abc]a、b 或 c(简单类)
[^abc]任何字符,除了 a、b 或 c(否定)
[a-zA-Z]a 到 z 或 A 到 Z,两头的字母包括在内(范围) :当前字母大小均可

C:预定义字符类

符号意义注意事项
.任何字符邮箱里面:如果本身就是.,那么在写正在表达式的时候,.将当前.转义
\d数字:[0-9]\d在正则表达式应用的时候:[0-9]—>\d
\w单词字符:[a-zA-Z_0-9]简单一些字符串,单词字符(规则:数字或者字母)

D:边界匹配器

符号意义
^行的开头
$行的结尾
\b单词边界

E:Greedy 数量词

符号意义
X?X,一次或一次也没有
X*X,零次或多次
X+X,一次或多次
X{n}X,恰好 n 次
X{n,}X,至少 n 次
X{n,m}X,至少 n 次,但是不超过 m 次

举例:
1.校验QQ号码

import java.util.Scanner;

/**
 * 需求:校验一个QQ号码
 *      定义一个规则:1)由5到10为组成的数字
 *                2)不能以0开头  
 *  分析:
 *      1)键盘录入一个QQ号码,使用字符串接收
 *      2)定义一个校验QQ的功能
 *      3)在main()中调用返回boolean类型
 * @author Apple
 */
public class RegexDemo2 {

    public static void main(String[] args) {

        //创建键盘了录入对象
        Scanner sc = new Scanner(System.in) ;

        //录入并接收数据
        System.out.println("请您输入QQ号码: ");
        String QQ = sc.nextLine() ;
        boolean flag = checkQQ(QQ) ;
        System.out.println("flag: "+flag);
    }

    public static boolean checkQQ(String qq){
        /*//定义正则规则
        String regex = "[1-9][0-9]{4,9}" ;

        //public boolean matches(String regex)告知此字符串是否匹配给定的正则表达式。 
        boolean flag = qq.matches(regex) ;
        return flag ;*/

        //直接返回
        return qq.matches("[1-9]\\d{4,9}");
    }
}

2.校验邮箱

import java.util.Scanner;

/**
 * 需求:校验邮箱:
 *      QQ邮箱:
 *          919081924@qq.com
 *          fengqingyang@163.com
 *          xxxxx@126.com
 *          zhangsan@westos.com
 *          lisi@sina.com
 *          wangwu@istone.com.cn....
 * 分析:1)键盘录入邮箱
 *      2)定义正则规则
 *      3)使用String中的特有功能校验
 *      4)输出即可
 * @author Apple
 */
public class RegexTest {
    public static void main(String[] args) {

        //创建键盘录入对象
        Scanner sc = new Scanner(System.in) ;

        //录入并接收
        System.out.println("请您输入一个邮箱:");
        String email = sc.nextLine() ;

        //定义正则规则:本身就是.-->\.--->\\.
//      String regex = "[a-zA-Z_0-9]+@[a-zA-Z_0-9]{2,6}(\\.[a-zA-Z]{2,3})+" ;
        String regex = "\\w+@\\w{2,6}(\\.[a-zA-Z]{2,3})+" ;

        //校验
        boolean flag = email.matches(regex) ;
        System.out.println("flag:"+flag);
    }
}

String中与正则表达式有关的方法:
  public String[] split(String regex)根据给定正则表达式的匹配拆分此字符串,返回值类型是一个字符串数组类型
举例:

public class RegexDemo2 {

    public static void main(String[] args) {

        //定义个字符串
        String str1 = "aa,bb,cc" ;
        //使用分割功能
        String[] strArray1 = str1.split(",") ;
        //遍历字符串数组
        for(int x = 0 ; x < strArray1.length; x ++){
            System.out.println(strArray1[x]);
        }

        System.out.println("------------------");

        //字符串:
        String str2 = "aa       bb                    cc" ;
        //使用切割功能:
        String[] strArray2 = str2.split(" +") ;
        for(int x = 0 ; x <strArray2.length ; x++){
            System.out.println(strArray2[x]);
        }

        System.out.println("--------------------");

        String str3 = "aa.bb.cc" ;
        //分割功能
        String[] strArray3 = str3.split("\\.") ;
        for(int x =0 ; x<strArray3.length ; x ++){
            System.out.println(strArray3[x]);
        }

        //硬盘上的路径表现形式:用两个反斜线代表一个反斜线
        //E:\\JavaSE\\JavaCode\\day13
        String str4 = "E:\\JavaSE\\JavaCode\\day13" ;
        //使用分割功能
        String[] strArray4 = str4.split("\\\\") ;
        for(int x = 0 ; x <strArray4.length ; x ++){
            System.out.println(strArray4[x]);
        }
    }
}

  public String replaceAll(String regex,String replacement)
    使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串
举例:

public class RegexDemo3 {

    public static void main(String[] args) {

        //定义一个字符串:
        String str = "helloword123JavaSE45678Javaweb" ;

        //需求:让当前这个字符串中的数字不显示出来
        //定义当前大串中数字定义正则规则 
//      String regex = "[0-9]+" ;
        String regex = "\\d+" ;
        String s = "*" ;

        //public String replaceAll(String regex,String replacement)
        String result = str.replaceAll(regex, s) ;
        System.out.println("result:"+result);
    }
}

模式与匹配器:

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexDemo4 {

    public static void main(String[] args) {
        //public static Pattern compile(String regex)将给定的正则表达式编译成一个模式对象
        //1)获取模式对象(通过正则规则)
        Pattern p = Pattern.compile("a*b") ;
        //2)通过模式获取匹配器对象,(将一个字符串类型的数据)
        Matcher m = p.matcher("aaaaaab") ;
        //3)调用Match(匹配器类)中的:public boolean matches():判断当前用户录入的字符串是否和当前的正则规则匹配
        boolean flag = m.matches() ;
        System.out.println("flag:"+flag);

        System.out.println("----------------------------");

        //上述写法非常麻烦,要获取模式对象Pattern还要获取匹配器对象:Matcher,然后通过matches()方法返回一个结果
        //以后可以使用下面这种格式

        //定义一个正则规则
        String regex = "a*b" ;

        //指定某一个字符串
        String str = "aaaaaaab" ;

        //使用String类的功能
        //使用当前给定的字符串调用public boolean matchers(String regex)
        boolean flag2 = str.matches(regex) ;
        System.out.println("flag2: "+flag2);
    }
}
Java从入门到架构师__JavaSE Java语言基础 阅读详情

相关推荐

海康视觉平台VisionMaster使用学习笔记(1)

双击图像源设置图像源的属性,像素格式分为Mono8和RDB24分别对应导入的图像是彩色还是黑白。打开相机驱动软件MVS,对连接的相机进行属性上的配置,先对相机的IP进行对应的设置。将自动触发的使能打开,保存配置好的相机属性,默认保存到用户集1中。点击MVS软件中的触发按钮,查看相机是否进行正常的触发拍照。打开VM软件添加一个图像源,选择图像源选项拖出图像源。回到VM软件中将选择相机选项选择到配置好参数的相机。取图方式也可以调整为相机取图,将图像源改为相机。双击相机进行连接后对相机的属性进行配置。

A567852的博客 1万+

QQ增删功能实现

qq通讯窗体实现增删功能 代码如下 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.SqlCli

掉头发是常事的博客 236

4D毫米波雷达

详解4D成像毫米波雷达

sangba2019的博客 2393

1.用户管理之注册

1.1流程图 实现 1.2.1前端校验 <!--表单校验 采用正则校验 1.用户名:单词字符,长度8到20位; 2.密码:单词字符,长度8到20位; 3.邮箱:邮箱格式 4.姓名:非空 5.手机号:手机号格式 6.出生日期:非空 7.验证码:非空 --> <script> //校验用户名函数 function checkUsername() { var username = $("#username..

weixin_48984179的博客 1233

彻底禁用有道云笔记自动更新:手动修改配置文件的终极方案

本文详细介绍了如何通过修改配置文件彻底禁用有道云笔记的自动更新功能,解决v7.2.8版本的兼容性问题。通过定位并修改`app-update.yml`文件,用户可以一劳永逸地阻止强制更新,保持稳定的v7.2.7版本。文章还提供了常见问题排查和进阶防护措施,确保操作的有效性和安全性。

weixin_29258297的博客 463

H3C无线控制器二层注册实战:从零配置到AP上线全流程(附常见问题排查)

本文详细解析了H3C无线控制器二层注册的全流程,从网络基础准备、AC核心配置到AP上线,重点阐述了CAPWAP隧道建立的关键步骤。文章提供了清晰的典型配置示例,并针对AP无法上线、状态异常等常见问题,给出了六种典型故障现象的排查思路与解决命令,帮助网络工程师快速定位并解决问题。

weixin_29214199的博客 546

【JavaSE】正则表达式学习笔记

介绍一个正则表达式,就是用特定模式匹配字符串的公式。虽然其语法初看可能显得古怪复杂,让人望而却步,但经过练习后会发现,编写这些表达式其实并不困难。而且,一旦掌握正则表达式,原本需要数小时且容易出错的文本处理工作,往往能在几分钟甚至几秒钟内完成。这里要特别强调,正则表达式并非 Java 独有,实际上很多编程语言都支持通过正则表达式进行字符串操作,例如Javascript、php。。。

qq_24052051的博客 1506

固定翼飞行器建模(二)——MATLAB/Simulink建模、配平及线性化

MATLAB/Simulink固定翼建模、配平及线性化。

2302_80148937的博客 1万+

[javase学习笔记] 18. 正则表达式

一个正则表达式,就是用某种模式去匹配字符串的一个公式。很多人因为它们看上去比较古怪而且复杂所以不敢去使用,不过,经过练习后,就觉得这些复杂的表达式写起来是相当简单的,而且,一旦你弄懂它们,你就能把数小时辛苦而且易错的文本处理工作缩短在几分钟(甚至几秒钟)内完成正则表达式不是只有java才有,实际上很多编程语言都支持正则表达式进行字符串操作限定符选择匹配符分组组合和反向引用符特殊字符字符匹配符定位符。

2403_89707927的博客 882

ESP32-C3入门教程 蓝牙篇①——基于Blufi 的 WiFi 智能配网

文章目录一、前言二、WiFi配网方式三、快速运行四、运行效果五、ESP32-C3程序流程5.1 主程序5.2 回调函数5.3 SmartConfig线程5.4 流程图六、关键函数6.1 设置SmartConfig的协议类型6.2 启动SmartConfig6.3 停止SmartConfig七、其他八、参考 一、前言 本文基于VS Code IDE进行编程、编译、下载、运行等操作 基础知识点请查阅:ESP32-C3入门教程 基础篇①——基于VS Code构建Hello World 二、WiFi配网方式 W

7765

YOLOv12改进前必看 - YAML模型配置文件详细解读(再也不用担心通道数不匹配) 附网络结构图

YOLOv12的模型配置文件在中,里面包含yolov12的以及的不同大小的模型,本文将详细介绍一下YOLOv12模型文件中各参数的含义。

Limiiiing的博客 3276

JavaSE学习笔记(20.Java之正则表达式)

JavaSE学习笔记(16.Java之正则表达式)

qq418674358的专栏 342

如何理解S参数的三大特性

提到S参数的时候经常会涉及一些概念,如无源性、因果性、互易性等,本文逐一介绍这些特性的概念、成因以及判断方式。

一只豌豆象的博客 4499

javaSE_day10 学习笔记 —— String类、正则表达式、StringBuilder类

javaSE_day10String类1.1 基础1.2 String,StringBuilder,tringBuffer1.3 常用方法1.4 练习1.5 正则表达式1.5.1 规则1.5.2 正则表达式练习replaceAll()替换split()解析字符串 String类 1.1 基础 由final修饰 不可以有子类 格式: String str = new String(“hello”); //hello在 常量池、堆 String str2 = “hello”; //hello在 常量

LIKE_0217的博客 511

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

JavaSE 学习笔记之正则表达式(二十五)

正则表达式:其实是用来操作字符串的一些规则。 好处:正则的出现,对字符串的复杂操作变得更为简单。 特点:将对字符串操作的代码用一些符号来表示。只要使用了指定符号,就可以调用底层的代码对字符串进行操作。符号的出现,简化了代码的书写。 弊端:符号的出现虽然简化了书写,但是却降低了阅读性。 其实更多是用正则解决字符串操作的问题。 组:用小括号标示,每定义一个小括号,就是一个组,而且有自动...

weixin_30307267的博客 111

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【JavaSE学习笔记】chapter06-常用类

学习资源:动力节点动力节点的个人空间-动力节点个人主页-哔哩哔哩视频 (bilibili.com)

Addery的学习日常 771

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

2022-08-12 学习笔记 day35-JavaSE-正则表达式

正则表达式的语法规则,贪婪模式与懒惰模式的区别,正则表达式在Java中的应用以及Pattern类与Macher类的介绍

weixin_56090951的博客 248

javaSE学习笔记——第十四天正则表达式、Math类、System类、Data类、Calendar类等

javaEE学习第十四天 java知识 正则表达式的概述和简单使用 A:正则表达式 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。 作用:比如注册邮箱,邮箱有用户名和密码,一般会对其限制长度,这个限制长度的事情就是正则表达式做的 B:案例演示 需求:校验qq号码. 1:要求必须是5-15位数字 2:0不能开...

影龙武的博客qq_43594119 412

学习笔记_JavaSE_14_正则表达式、Math、Random、System、BigInteger、BigDecimal、Date与DateFormat、Calendar

1:正则表达式(理解) (1)就是符合一定规则的字符串 (2)常见规则  不背  查就行 A:字符 x  字符 x。 举例:'a'表示字符a \\ 反斜线字符。 只有两个\,才能代表一个\。因为\具有转义作用 \n (换行符)新行符 ('\u000A')  \r 回车符 ('\u000D') B:字符类 [abc] a或b 或 c(简单类)三个选一个   ...

lvsheng518的博客 260

黑马java学习笔记12(阶段二 第三章3-3~第四章4-1)

黑马java学习笔记12(阶段二 第三章3-3~第四章4-1)

xiaozhuzhu__的博客 1167

javaSE学习笔记_目录

IO字节流 javaSE (二十九)IO.read()输出是int的原因、fileoutputstream的追加功能、用byte[]优化拷贝文件、Buffered缓冲区内存示意图 javaSE (三十)IO流异常处理、图片加密处理、输入文件路径并拷贝文件内容、在文件中键入内容 计算机基础知识 javaSE (一)数据类型转换、++/–运算符 javaSE (二)逻辑/位运算符、左移右移运算符、sw...

PizAn的博客 7717

【JavaSE】之正则表达式

Java基础正则表达式相关知识详细介绍~

小新要变强的博客 2659

JavaSE-初识正则表达式

title: 初识正则表达式 date: 2019-02-23 22:09:32 tags: - JavaSE categories: - JavaSE 正则表达式概述及基本使用 指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。 常见规则 规则字符在java.util.regex包下的Pattern类中。 A:字符 x 字符 x。举例...

ahojcn 的博客 293

JavaSE-正则表达式

Java_SE正则表达式

认真学Java,认真学吉他,认真做人做事,开开心心活着! 862

html中js的自动提交,html form禁止表单回车自动提交(通常原因是为在ajax提交前、后进行js判断控制)...

Linux 下 Oracle 内核参数优化数据库的性能优化涉及到整个数据库运行环境的方方面面,诸如操作系统,Oracle自身,存储,网络等等几个大块.而操作系统则是Oracle稳定运行与最大化性能的基石.本文主要描述基于Linux系统下 Or ...composer -vvv然后在使用Composer install 或者 composer update 的时候会停住不动.使用-vvv可以输出更多...

weixin_30072631的博客 243

JavaSE-Day19正则表达式

语法示例:"." : 匹配任何字符。"\d":任何数字[0-9]的简写;"\D":任何非数字[^0-9]的简写;"\s": 空白字符:[ \t\n\x0B\f\r] 的简写"\S": 非空白字符:[^\s] 的简写"\w":单词字符:[a-zA-Z_0-9]的简写"\W":非单词字符:[^\w]//.表示任意一个字符System.out.println("你".matches(".."));//falseSystem.out.println("你".matches("."));

学习java的大雪笙一枚 798
上一篇: 【JavaSE_学习笔记】System类与Math类
下一篇: 【JavaSE_学习笔记】集合Collection接口
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值