java基础--正则表达式

Java正则表达式:从基础到实践 简介:Java中的正则表达式是一种模式匹配语言,利用特殊字符和普通字符构成的模式来匹配、查找、替换和解析文本。它通过包中的Pattern和Matcher类实现。本简介涵盖了正则表达式的语法基础、字符类、量词、分组与反向引用、边界、预查等,并通过示例代码展示了如何在Java中使用正则表达式进行基本查找、替换等操作。正则表达式广泛用于输入验证、数据提取、日志分析等场景,掌握其使用可显著提高处理字符串问题的效率。 阅读详情

正则表达式表达式通常用于判断语句中,用来检查某一字符串是否符合某一格式。正则表达式是含有一些特殊意义的字符串,这些特殊字符称为正则表达式的元字符。例如:“\\d”代表数字0~9中的任何一个,“\d”就是元字符。

正则表达式中的元字符

元字符

正则表达式中的写法

意义

.

.

任意一个字符

\d

\\d

0~9的任何一个数字

\D

\\D

任何一个非数字字符

\s

\\s

空白字符 如:’\t’ ‘\n’

\S

\\S

非空白字符

\w

\\w

可做标识符的字符,不包括$

\W

\\W

不可做标识符的字符

\p{Lower}

\\p{Lower}

小写字母a~z

\p{upper}

\\p{upper}

大写字母A~Z

\p{ASCII}

\\p{ASCII}

ASCII字符

\p{Alpha}

\\p{Alpha}

字母字符

\p{Digit}

\\p{Digit}

十进制数, 0~9

\p{Alnum}

\\p{Alnum}

数字或字母字符

          \p{Punct}

\\p{Punct}

标点符号:!”#$%&’()*+,-等

\p{Graph}

\\p{Graph}

可见字符[\p{Alnum}\p{Punct}]

\p{Print}

\\p{Print}

可打印字符[\p{Graph}\x20]

\p{Blank}

\\p{Blank}

空格或制表符[\t]

\p{Cntrl}

\\p{Cntrl}

控制字符[\x00-\x1F\x7F]

 

注意:在正则表达式中 ”.” 代表任何一个字符,因此在正则表达式中如果想使用普遍意义的点字符 “.” , 必须使用转义字符 ”\“.

 

在正则表达式中可以使用方括号括起来若干个字符来表示一个元字符,该元字符可代表方括号中的任意一个字符。 例如:reg = “[abc]4” , 这样字符串a4 , b4 , c4, 都是和正则表达式匹配的字符串。方括号元字符还可以为其他格式。如:

  1. [^456] : 代表4,5,6之外的任意字符;
  2. [a-r] : 代表a~r 中的任何一个字母;
  3. [a-zA-Z] : 代表任意一个英文字母;
  4. [a-e[g-z]] : 代表a~e, 或 g~ z 中的任何一个字母(并运算);
  5. [a-o&&[def]] : 代表d, e, f(交运算);
  6. [a-d&&[^bc]] :  代表字母a,d(差运算);

 

在正则表达式中允许使用限定修饰符来限定元字符出现的次数。如:A*,代表A可在字符串中出现0次或者多次。

 

限定修饰符

限定修饰符

意义

示例

?

0次或1次

A?

*

0次或多次

A*

+

一次或多次

A+

{}

正好出现n次

A{2}

{n,}

至少出现n次

A{3,}

{n,m}

出现n~m次

A{2,6}

 

例如:使用正则表达式来判断指定的变量为合法的E-mail地址。

 

Tessent ATPG进阶:解锁多种Fault Model的工程实践与选型指南 本文深入探讨Tessent ATPG中多种Fault Model的工程实践与选型策略,涵盖Stuck-at、Transition、Bridge等核心模型的应用场景与配置技巧。通过实际案例解析,展示如何组合不同Fault Model提升芯片测试覆盖率,特别针对汽车电子、超低功耗芯片等复杂场景提供专业解决方案。 阅读详情

相关推荐

MPN – 制造商物料编号(延伸)

此外,用户还可以在物料主数据中定义阻止MPN材料的原因,以及在采购订单创建时,是否可以将现有的MPN材料修改为其他MPN材料,从而实现对MPN材料的精细控制和管理。通过使用AMPL,用户可以指定每个MPN材料是否仅能为特定工厂或整个企业所有工厂采购、采购的时间段、是否必须属于特定修订级别、是否只能从特定制造商工厂采购以及是否被阻止及其原因。通过AMPL管理,企业可以规范采购流程,避免使用未经批准的材料,从而提高采购的透明度和效率,同时也为质量控制提供了保障‌。3、QM中的制造商物料。质量信息记录QI01。

yanzibing99的博客 2486

正则表达式-Java实现 - \d、\D、\w、\W、+、*、?

import java.util.regex.Matcher; import java.util.regex.Pattern; /* \d 的含义是 [0-9] \D 的含义是 [^0-9] 感觉最好的方法还是先写好正则表达式,在将它转成 java 语法支持的内容 */ public class MatchNumber { public static void main(String[...

cheng_cuo_tuo的博客 4万+

脑电分析:为什么大脑信号会“变同步”?——事件相关同步化与去同步化 (ERS/ERD) 全景解析

脑电分析中的事件相关同步化(ERS)和去同步化(ERD)是研究大脑动态节律的重要方法,反映特定任务下脑电频段能量的变化。ERD表示神经元活动分散(功率下降),提示脑区活跃处理信息;ERS则反映神经元同步(功率增强),常与静息状态相关。本文详解了ERS/ERD的生理机制、计算流程(包括基线校正和功率谱分析),并提供了Python实现示例,展示如何通过Welch法和STFT进行时频分析,生成ERD/ERS热力图。该技术广泛应用于运动想象脑机接口、癫痫检测等领域,为理解大脑功能状态提供了量化工具。

qq_32516809的博客 1396

java 元字符_正则表达式教程一 —— 特殊字符(元字符)

概述:正则表达式,又称规则表达式。是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。它最初是科学家对人类神经系统工作原理的早期研究(一种用数学方式来描述神经网络的新方法)。Unix的主要发明人 Ken Thompson 将它运用到了计算搜索算法、编辑器qed、编辑器ed(太古老了),从此被广泛应用那么它有啥...

weixin_39995943的博客 647

大模型LoRA微调调参的实战技巧(持续更新)

本文主要介绍了大模型LoRA微调调参的实战技巧,希望对学习大语言模型的同学们有所帮助。 文章目录 1. 前言 2. 实战技巧

herosunly的博客 20万+

conda install出现CondaValueError: Malformed version string invalid character(s)解决方案

本文主要介绍了conda install出现Solving environment:failed、CondaValueError: Malformed version string invalid character(s),希望能对新手有所帮助。 文章目录 1. 问题描述 2. 解决方案 2.1 步骤一 2.2 步骤二 2.3 步骤三

weixin_43178406的博客 6万+

java 打印元字符_Java正则表达式-元字符

Java正则表达式-元字符元字符是Java正则表达式中具有特殊含义的字符。Java中的正则表达式支持的元字符如下:()[] {{\ ^ $ |?* +。<>-=!1 Character类元字符[并]在正则表达式内指定字符类。字符类是一组字符。正则表达式引擎将尝试匹配集合中的一个字符。字符类“ [ABC]”将匹配字符A,B或C。例如,字符串“ woman”或“ women”将匹配正则表达...

weixin_35540825的博客 221

大模型——Coze工作流实战:一键生成像素风格视频

本文介绍了如何利用Coze平台工作流生成像素风格心理学短视频的方法。通过创建工作流、设置变量节点、调用大模型生成文案、数据格式化处理、合成音频、生成字幕等步骤,最终实现从输入主题到生成完整视频的自动化流程。文章详细展示了每个节点的具体配置方法,包括提示词编写和数据处理脚本,为读者提供了完整的像素风格视频制作解决方案。

819

正则表达式元字符详细对照表(适用于Java)

正则表达式(regex)是一个强大的字符串处理工具,本篇主要记录一下元字符的功能表,方便后续自查

weixin_53024141的博客 1854

【微服务】SpringBoot 对接飞书审批流程使用详解

SpringBoot 对接飞书审批流程使用详解

congge_study的博客 3771

下采样优化实战:用ADown显著提升YOLOv11的多尺度特征保持能力

ADown 以“可编程梯度信息+多分支特征融合”打破了传统下采样的性能壁垒,为 YOLOv11 带来了多尺度特征的精准传递能力。从原理到代码集成,本教程已为你铺就了一条“小目标检测精度跃升”的实战路径。现在就动手尝试吧——当你看到模型对极小目标也能精准识别,且特征图细节完整时,你会明白这份技术探索的价值。我很乐意在你实践过程中帮你解决任何问题,让我们一起推动目标检测在下采样领域的边界。

FJN110的博客 422

Java正则表达式基础

Java正则表达式基础 如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一个用来搜索匹配字符串的模式。

899

GPU 资源池化云平台解决方案​

定义与特点Kubernetes是一个开源的容器编排和管理平台,通过提供自动化和声明式的方式来部署、扩展、维护和运行应用程序。它支持跨多个主机和集群部署容器,确保应用程序的高可用性和可扩展性。Kubernetes提供了丰富的功能和插件,允许用户根据自己的需求进行定制和扩展。架构与组件控制平面(Control Plane):负责集群的决策(如调度)和集群状态的检测与响应。

ZhangJiqun&191cm&85kg 1161

【Java 基础篇】Java 正则表达式

本篇博客介绍了 Java 正则表达式的基本概念、语法和常用操作。我们学习了如何创建正则表达式模式对象、匹配器对象,以及如何使用它们进行字符串的匹配、提取和替换操作。正则表达式在 Java 程序中具有广泛的应用,可以帮助我们处理文本数据,提取关键信息,进行格式验证等。通过灵活运用正则表达式,我们可以更高效地处理字符串操作。希望本篇博客对你理解和使用 Java 正则表达式有所帮助。祝你在 Java 编程中取得更多的成功!

繁依Fanyi的博客 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

JAVA基础之注解、正则表达式

今天学习了注解以及利用注解和反射去写一个工程。以及正则表达式的了解注解 : JDK1.5新特性 —> 标注作用 :1.注释2.强制检查语法3.可以在使用注解的同时配置一些数据,在程序运行期间可以通过反射操作注解,获取配置的数据进行使用4.注解可以存在于Class文件中5.大量的代替了配置文件的存在@注解类型(数据)位置 :默认可以使用在任意位置,可以通过元注解Target规定注解类型的使用位置JDK内置注解:1、常见的内置注解 2、元注解:注解注解的注解自定义注解。

柯南的博客 1212

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

java基础知识——23.正则表达式

首先,我们需要明确一个观点,什么是正则表达式?可以定义出一个字符串的结构特征,然后我们可以利用这个特征来查找、匹配、替换一个字符串中的某些内容。其实很好理解。

m0_52096593的博客 2206

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Java基础-正则表达式

Java Regex - Java Regular Expressions(Java正则表达式) Java regex是官方的Java正则表达式API。术语Java regex是Java正则表达式的缩写。Java regex API位于Java .util中。regex包,自Java 1.4以来一直是标准Java (JSE)的一部分。本Java regex教程将解释如何使用这个API来匹配正则表达...

wwt的博客 1305

Java基础|正则表达式

正则表达式可以用字符串来描述规则,并用来匹配字符串。本文从正则表达式的基本概念,匹配规则,复杂匹配,分组匹配,非贪婪匹配及具体应用方面进行介绍。

梦晨涌京 800

Java基础之《正则表达式》

2007年2月 RegularExpressions 字符串处理利器 一、前言 1、正则表达式就是用来处理字符串的(查找、替换等) 用途: 字符串匹配(字符匹配) 字符串查找 字符串替换 例如: IP地址是否正确 从网页中揪出email地址 从网页中揪出链接等 类: java.lang.String java.util.regex.Pattern java.ut...

csj50的专栏 718

Java基础之正则表达式

1. String类提供的一些方法 String类提供的一些对象里面是可以用正则表达式的。 比如: ① matches方法,可以得到字符串中是否存在与正则表达式匹配的字符串,返回结果是布尔类型; String str1="I want too a nice jooob!"; System.out.println(str1.matches("I(.*)I"));//是否以I开头 结果: true ② replaceAll方法和replaceFirst方法,可以将字符串中与正则表达式匹配的字符串替换掉,返回

Trapped_beast的博客 205

JAVA基础(常用API) —— 正则表达式

正则表达式、 爬虫、爬取的分类:贪婪爬取和非贪婪爬取以及分组的分类:捕获分组和非捕获分组

hdakj22的博客 826

《Java基础知识》Java正则表达式

一个字符串其实就是一个简单的正则表达式,例如 Hello World 正则表达式匹配 "Hello World" 字符串。.(点号)也是一个正则表达式,它匹配任何一个字符如:"a" 或 "1"。下面列出了一些正则表达式的实例及描述:Java 正则表达式和 Perl 的是最为相似的。java.util.regex 包主要包括以下三个类:还有一个特殊的组(group(0)),它总是代表整个表达式。该组不包括在 groupCount 的返回值中。下面的例子说明如何从一个给定的字符串中找到数字串:可以通过调用 ma

Limingmingaa的博客 229

Java基础:Java正则表达式

本文介绍了正则表达式的概念 、语法 以及在java中的应用。

love_study1314的博客 569

Java基础----正则表达式

【代码】Java基础----正则表达式。

weixin_45963771的博客 228

java基础10:正则表达式与反射

关于Java基础的文章,我觉得写得还可以,以前发在了我其它的博客了,肯定是原创,现在再分享给大家出来。 -------------------------------------------------------------------------------------------------------------------------------------------------

金福林的博客 1192

【自学笔记】01Java基础-08Java常用API:05正则表达式与Lambda表达式

Lambda表达式是Java 8 引入的一个新特性,用于简化函数式接口的一种语法糖(语法糖,表示编程中更简洁的语法结构Lambda 表达式基于数学中的 λ 演算,它允许我们将一个函数作为参数传递给另一个函数,或者用于实现只有一个抽象方法的接口。Lambda 表达式的书写规则:(参数列表) -> { 函数体 }其中,参数列表和函数体可以省略某些部分。

weixin_55751186的博客 1263
上一篇: Java基础--String格式化
下一篇: Java基础--数组
jmf_java
博客等级 码龄9年 0粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值