Java笔记:正则表达式

一、基础知识

正则表达式是描述字符序列的一串字符。这种通用的描述被称为模式,可用于在其他字符序列中查找匹配。Java的正则表达式由Pattern和Matcher组成,Pattern用于定义正则表达式,Matcher用于在其他序列中匹配模式。

二、语法

正则表达式由常规字符、字符类、通配符及量词构成。

常规字符根据自身进行匹配。

字符类是一组字符,通过在方括号之间放置字符可指定字符类。

通配符可以匹配任意字符。

量词决定表达式将被匹配的次数。

^ 匹配输入字符串的开始位置
$ 匹配输入字符串的结束位置
* 匹配前面字符或子表达式零次或多次
+ 匹配前面字符或子表达式一次或多次
? 匹配前面字符或子表达式零次或一次
{n} 匹配前面的字符或子表达式n次
{n,} 匹配前面的字符或子表达式至少n次
{n,m} 匹配前面的字符或子表达式至少n次、至多m次
? 在限定符之后表示匹配模式是非贪心的,匹配尽可能短的字符串。默认的贪心模式匹配尽可能长的字符串。
A|B 匹配A或B
[ABC] 匹配ABC中的任意字符
[^ABC] 匹配非ABC的任意字符
[A-Z] 匹配A-Z内的任意字符

三、示例

import java.util.regex.Matcher;
import java.util.regex.Pattern;

class Solution {
    public static void main(String[] args) {
        Pattern pattern = Pattern.compile("[a-z]+");
        Matcher matcher = pattern.matcher("Hello World");
        System.out.println(matcher.matches());//不匹配子串

        matcher.reset();
        while (matcher.find()) {//匹配子串
            System.out.println(matcher.start());//获取当前匹配的开头引索
            System.out.println(matcher.end());//获取当前匹配的末尾引索
            System.out.println(matcher.group());//获取最后一个匹配的字符串
        }
        String str = matcher.replaceAll("");
        System.out.println(str);
    }
}

分割字符串。

import java.util.Arrays;
import java.util.regex.Pattern;

class Solution {
    public static void main(String[] args) {
        Pattern pattern = Pattern.compile("[,.!]");
        String[] strings = pattern.split("JetBrains!IntelliJ,IDEA.");
        System.out.println(Arrays.toString(strings));
    }
}

原文地址:https://www.cnblogs.com/arseneyao/p/8531309.html

时间: 2024-10-11 20:58:02

Java笔记:正则表达式的相关文章

java笔记--正则表达式的运用(包括电话,邮箱验证等)

正则表达式 正则表达式符号:"." : 任意字符"\\d" : 0-9任何数字"\\D" : 任何非数字"\\s" : 空白字符,如'\t','\n'"\\S" : 非空白字符"\\w" : 可用作标识符的字符,不包括'$'"\\W" : 不可用作标识符的字符"\\p{Lower}" : 小写字母{a-z}"\\p{Upper}"

6.2-全栈Java笔记:异常处理机制的分类

异常分类 JDK 中定义了很多异常类,这些类对应了各种各样可能出现的异常事件,所有异常对象都是派生于Throwable类的一个实例.如果内置的异常类不能够满足需要,还可以创建自己的异常类. 图1 异常的分类  Error Error类层次描述了Java运行时系统内部错误和资源耗尽错误.这类错误是我们无法控制的,同时也是非常罕见的错误.所以在编程中,不去处理这类错误. Error表明系统JVM已经处于不可恢复的崩溃状态中.我们不需要管他. 图2 java.lang包中Error的类 Error与E

15.1-全栈Java笔记:Java事件模型是什么?事件控制的过程有哪几步??

应用前边两节上一章节的内容,大家可以完成一个简单的界面,但是没有任何的功能,界面完全是静态的,如果要实现具体功能的话,必须要学习事件模型. 事件模型简介及常见事件模型 对于采用了图形用户界面的程序来说,事件控制是非常重要的. 一个源(事件源)产生一个事件并把它(事件对象)送到一个或多个监听器那里,监听器只是简单地等待,直到它收到一个事件,一旦事件被接收,监听器将处理这些事件. 一个事件源必须注册监听器以便监听器可以接收关于一个特定事件的通知. 每种类型的事件都有其自己的注册方法,一般形式为: v

13.1-全栈Java笔记:打飞机游戏实战项目|AWT技术|MyGameFrame

简介和项目目标 通过游戏项目学习整个Java基础知识体系,我们做了精心的设计,让每一章知识都能获得应用. 比如:多线程用来实现动画效果.容器实现对于多发炮弹的存取和处理.常用类等等的应用. 寓教于乐,让大家迅速入门,更希望通过喜闻乐见的小游戏,让大家爱上编程,爱上"程序员". 老鸟建议 很多朋友会疑惑:"游戏项目,又不能拿到企业面试中,为什么要讲?" 这是一种太过于功利的想法.就像,我们说:"今天吃个馒头,又不是长高,为什么要吃呢?" 游戏项目的

java常用正则表达式

java常用正则表达式 1.^\d+$ //匹配非负整数(正整数 + 0) 2.^[0-9]*[1-9][0-9]*$ //匹配正整数 3.^((-\d+) ?(0+))$ //匹配非正整数(负整数 + 0) 4.^-[0-9]*[1-9][0-9]*$ //匹配负整数 5.^-?\d+$ //匹配整数 6.^\d+(\.\d+)?$ //匹配非负浮点数(正浮点数 + 0) 7.^(([0-9]+\.[0-9]*[1-9][0-9]*) ?([0-9]*[1-9][0-9]*\.[0-9]+)

Java笔记---部署 JavaWeb 项目到云服务器

一.前言 前面我们已经尝过了在云服务器上部署代码的甜头了,现在主菜就要上场了,那就是将我们的 JavaWeb 项目部署到云服务器上.兴奋吧?淡定淡定~ 二.项目部署 我们对于 Java Web 项目在本地机器(无论是 Windows 还是 Linux)上的部署已经了然于心了,那么对于在云服务器上部署 Java Web 项目又是如何操作的呢? 其实很简单,还是离不开 Web 项目部署的那三点: ① 基础的 JDK 环境 ② 一个 Web 服务器.如 Tomcat.JBoss ③ 一款数据库.如:m

JAVA 笔记 七

JAVA笔记七 this:就代表本类的对象,this代表它所在函数所属对象的引用简单说:那个对象在调用this所在的函数,this就代表那个对象静态:static 用法:是一个修饰符,用于修饰成员(成员变量,成员函数)当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调用.类名.静态成员static特点1.随着类的加载而加载2.优先于的对象存在3.被所有对象所共享4.可以直接被类名所调用实例变量和类变量的区别:1.存放位置. 类变量随着类的加载而存在与方法区中. 实例

JAVA笔记六

JAVA笔记总结六 把大象放入冰箱的几步: 面向对象的三个特征:封装,继承,多态 JAVA开发实际上就是找对象使用,没有对象就创建一个对象 找对象,建立对象,维护对象的关系 类和对象的关系:类是对现实生活中实物的描述: 对象就是这类事物,实实在在存在的个体 匿名对象:匿名对象可以作为参数进行传递也可以作为对象方法进行一次调用

Java中用正则表达式找出数字

Java中用正则表达式找出数字 1.题目    String str = "fjd789klsd908434jk#$$%%^38488545",从中找出78990843438488545,请找到解决办法 2.实现源码 /** * */ package com.you.model; /** * @author YouHaidong * */ public class FindNumber { /** * 字符串str */ public static String str = "