java正则表达式的使用

Java 中使用正则表达式 `group()` :返回当前匹配的整个字符串或分组捕获的子串。:尝试将整个字符串与模式匹配。可以匹配 "acb"、"aab" 等,但不能匹配 "ab" 或 "a\nb"。表示以 "abc" 开头的字符串,如 "abcdef"。表示以 "abc" 结尾的字符串,如 "xyzabc"。可以匹配除 "a"、"b"、"c" 之外的任意一个字符。表示至少出现两个 "a",如 "aa"、"aaa" 等。可以匹配 "ab"、"abb",但不能匹配 "a"。可以匹配 "a"、"b"、"c" 中的任意一个字符。 阅读详情
我们都知道,String类封装了很多关于操作字符串的许多方法,且在我们日常的程序编写过程中,经常需要对字符串进行处理。
当我们要对一个字符串的内容进行某些限制或者操作(如判断用户名是否符合命名规则、邮箱格式是否正确),使用正则表达式可以帮我们很轻松的完成对字符串的相关操作。

使用正则表达式可以完成减轻代码的复杂度,很复杂的处理过程有时只需交给正则表达式处理,使得程序更为简练。但与此同时,由于正则表达式功能封装性太强,不易一下子读懂,所以记得要备注清楚正则表达式的说明。

字符串的正则表达式首先会被编译为此Pattern类的实例,我们可以查看API Pattern类进行正则表达式的构造。
学习正则表达式,多查API 多练习即可:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
 * 正则表达式,请参照Pattern等相关API
 * @author 
 *
 */
public class PatternTest {

	public static void main(String[] args) {
		//matches1();
		//matches2();
		//matches3();
		//matches4();
		//matches5();
		matches6();
		
	}

	//应用Pattern类来处理正则表达式
	private static void matches6() {
		String str = "wfs 897f sf sdf 78sdf sdf iopo tyr";
		//找到3个字母的单词   \b为单词边界的匹配,可查阅Pattern 关于边界的说明。
		String regex = "\\b\\w{3}\\b";
		Pattern p = Pattern.compile(regex);
		//获取匹配器
		Matcher m = p.matcher(str);
		//进行一次次匹配,如果匹配,则打印出结果    matches()是对整个字符串的匹配。
		while(m.find()){
			System.out.println(m.group());
			//当前匹配开起始字母索引值
			System.out.println(m.start());
			//当前匹配开结束字母索引值
			System.out.println(m.end());
		}
	}

	//对字符串进行替换
	private static void matches5() {
		String str = "wanggzhing22234lkf2433lkkj";
		//将其中的数字去除
		String regex1 = "\\d+";
		//将其中的叠词dd 222等替换为单个
		String regex2="(.)\\1+";
		
		System.out.println(str.replaceAll(regex1, ""));
		//$用地取上一个正则表达式中的组
		System.out.println(str.replaceAll(regex2, "$1"));
	}

	//对字符串进行分解    组的运用
	private static void matches4() {
		//以点来分解
		//String str = "com.java.pattern";
		//String regex ="\\.";
		
		//对不规则的点来分解
		//String str = "com..java.....pattern.test";
		//String regex ="\\.+";
		
		//分组的使用
		String str = "ja33vafoi....usdfff4::45nnsassd";
		// . 代表任意字符  (.)将其进行分组,  \1表示第一组的内容
		//以下表达式表示同样的内容出现过两次以上
		String regex ="(.)\\1+";
		
		
		
		String[] arr = str.split(regex);
		for(String s:arr) {
			System.out.println(s);
		}
	}

	//Greedy 数量词 ,指定正则表达式出现次数的判断
	private static void matches3() {
		// ?代表0次或1次,+代表1次或多次,*代表0或多次
		//{x} 刚好出现x次, {x,}至少出现x次,{x,y}出现x次以上但不超过y  
		
		String str = "234352";
		//定义规则,数字可以出现一次或者多次。
		//String regex = "\\d?";
		String regex = "\\d{5,15}";
		boolean result = str.matches(regex);
		System.out.println(result);
	}

	//预定义类,顾名思义,预定义类就是将一些常用的正则给简化了。
	private static void matches2() {
		//      . 表示任意符,
		//      \d 表示数字:[0-9] 
		//		\D 非数字: [^0-9] 
		//		\s 空白字符:[ \t\n\x0B\f\r] 
		//		\S 非空白字符:[^\s] 
		//		\w 单词字符:[a-zA-Z_0-9] 
		//		\W 非单词字符:[^\w] 
		
		String str = "3_W";
		String regex = "\\d\\w\\w";
		//String regex = "\\d\\w+";
		boolean result = str.matches(regex);
		System.out.println(result);
	}

	//字符类
	private static void matches1() {
		String str = "aA";
		// String str = "ab";
		
		// 指定正则表达式 [] 代表一个字符,[abc]表示这个字符可以是abc中的任意一个。
		//[A-Z]表示A-Z的任意一个字符。
		String regex = "[abc][A-Z]";
		boolean result = str.matches(regex);
		System.out.println(result);
	}
}



【工业相机】【深度4】线扫描相机 - 选型实践 前言: 在工业相机的深度应用的前三节里面,针对工业相机的选型、参数、应用计算等做了一些说明。期中,在深度3里面,在说明工业相机在速度场景下的应用的时候,专门开了一节介绍线扫描相机行频速度的计算公式和镜头的选型的大致说明,感觉说的还是不够透彻,切应用举例也不充分,这里特别开一个章节,基于线扫描相机的特点对比面阵相机的特点进行比较详细的说明,尤其对线扫描相机的选型实践,尤其是线扫描相机的分辨率选择计算、行频选择计算进行了充分的说明和计算说明,希望能够给用到线扫描工业相机的同学给予一定的参考: 阐述: 在编 阅读详情

相关推荐

【SLAM论文笔记】SplaTAM论文小结

参考方法有ORB-SLAM3、Point-SLAM、NICE-SLAM、Kintinuous、ElasticFusion,测试数据集有ScanNet++、Replica、TUM-RGBD、Orig-ScanNet,SpaTAM并未在全部对比均为第一,表现最佳的是在ScanNet++、Replica,ScanNet++上SplaTAM方法位姿精度比第2名ORB-SLAM3高两个数量级,在TUM。上无稀疏SLAM结果,NICE-SLAM与Point-SLAM占优。SplaTAM基本做到了SOTA。

持之以恒 1009

java中正则表达式的使用

1.1. 简介Regular Expression  正则表达式   常简称为: regex、正则正则表达式是一整套约束字符串的语法规则,独立于任何编程语言正则表达式 方便、灵活、功能强大,多部分编程语言都对正则表达式提供了支持我们通常把正则作为一个工具,进行字符串的 校验、获取、替换等操作 应用场景:校验用户输入的手机号是否符合要求提取网页中的邮箱地址将一段文本中所有的"李蛋"替换为"蛋蛋"等1...

BIGBAI的博客 475

从零构建物联网数据中台:MQTT协议、Node.js服务、MongoDB与InfluxDB双存储及React可视化实战

本文详细介绍了从零构建物联网数据中台的完整实战方案。通过采用MQTT协议作为设备通信标准,结合Node.js搭建高并发数据处理服务,并创新性地使用MongoDB与InfluxDB双存储架构分别管理设备元数据与海量时序数据,最后利用React构建了实时数据可视化控制台。该架构有效解决了物联网项目中数据异构、查询性能低下等核心痛点,为构建高效、可扩展的物联网平台提供了清晰路径。

weixin_28432777的博客 288

Java中使用正则表达式

迅速上手:在其他语言中会使用正则表达式请参考如下代码示例。[代码] 如不会,以下是详细介绍 一、正则表达式及其语法 正则表达式是文本匹配的一种方法。 一些常用的语法如下:. - 匹配除换行符以外的所有字符。 \d,\w,\s - 匹配数字、字符、空格。 \D,\W,\S - 匹配非数字、非字符、非空格。 我iHIT - 匹配 我iHIT 整个字符串。...

CyanTangerine的博客 6635

基于轻量级神经网络MobileNet V2的水果识别种类算法研究

本文阐述了一种基于轻量级卷积神经网络MobileNet V2的水果分类与识别算法研究。为了最大限度地促进机械收获,需要一个检测系统,它可以让我们识别不同类别的水果。一个相对未开发的想法是使用深度学习和人工智能算法,不仅可以检测水果的种类,还可以检测水果是否成熟。这可以证明是有利可图的,因为它可以提供作物生长状况以及成熟和未成熟果实的个体数量,以及决定是否是收获时间的有用信息。第一步对数据进行了预处理,数据预处理技术在众多的深度学习计算中起到了重要作用。

qq_43556680的博客 1640

SUMO使用教程(一)

本人的sumo视频入门课程,希望支持哦。https://edu.csdn.net/course/detail/25834 SUMO是一款交通仿真软件,其余可自行百度。教程一主要展示一下如何运行一个仿真实例。当然,这只是实现方法中的一种。 准备: 1.SUMO软件 2.osm地图文件 SUMO可去官网下载,解压后就可以使用,图形界面软是在解压后bin文件夹下的sumo-gui.exe。...

lyx的专栏 3万+

[转载]正则表达式概述及在JAVA中的使用

正则表达式概述及在JAVA中的使用概述你是否使用过查找*.tmp临时文件? 你是否使用过编辑工具中的查找/替换功能? 其实它们都使用了正则表达式正则表达式的作用提供更强大的字符串处理能力 测试字符串内的模式 例如,...

congji3817的博客 117

VS Code下载安装与使用教程

VSCode下载安装与使用教程

weixin_46713695的博客 4万+

如何使用Java自带的正则表达式【转】

在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util.regex包。 可粗略估计一下,除了偶尔用Linux的外,其他Linu x用户都会遇到正则表达式。正则表达式是个极端强大工具,而且在字符串模式-匹配和字符串模式-替换方面富有弹性。在Unix世界里,正则表达式几乎没有什么限制,可肯定的是,它应用非常之广泛。正则表达式的引擎

键者天行 1万+

【ARM Trace32(劳特巴赫) 使用介绍 1.3 - ARM 系统调试中常见的挑战】

每一个独立的gust os或者一个OS 内部里面美格独立的进程它使用虚拟地址是可能是重叠的,比如linux中每个用户进程它的运行地址(虚拟地址)都是0x0,这时如果想去同时调试所有进程,那么必须要有个办法把这些进程区分开来,trace32 就在虚拟地址前面加前缀的方法,这个前缀称为space id, 这个space id 实际上就是processor id或者是task id, 这样就可以把一个os内部的不同的进程区分开来。如果工具和内核中的连接是可以建立起来的,那么接下来就是调试工具使用的问题了。

CodingCos的博客 1961

导数与微分在 FPS 射击游戏中的实际应用:把“手感”算出来

摘要:射击游戏开发中,单线程适用于简单小游戏(如单机打靶),所有任务由主线程顺序处理,代码简单但效率较低;多线程则适合复杂场景(如多人在线3D大作),通过渲染、逻辑、网络、音效等线程分工协作,确保画面流畅、响应迅速和实时同步。选择依据取决于游戏复杂度、联网需求和性能要求,小型游戏用单线程,大型高要求项目必须采用多线程架构。(149字)

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 3278

java中使用正则表达式

计算机专业毕业或者使用过Unix、Perl等产品的读者一定对正则表达式有一定的印象,即使没有接触过正则表达式也不要被它的外貌所吓倒。虽然做到精通正则表达式比较难,但是能够掌握它的基本应用却是非常容易的,一旦把正则表达式应用于实际问题的解决就可以非常明显的提高工作效率。 正则表达式最早是由数学家Stephen Kleene在对自然语言的递增研究成果的基础上提出来的,具有完整语法的正则表达式使用在字

u012422446的博客 847

基于STM32+华为云设计的智能鱼缸

本项目基于STM32单片机设计一款基于物联网的智能鱼缸系统,并通过应用侧接口开发上位机APP实现远程对鱼缸参数的检测和控制。该系统包括水温检测、水质检测、自动或手动换水、氛围灯灯光变换和自动或手动喂食等功能,可以帮助用户更好地管理鱼缸,提高鱼儿的生存率,同时增强用户对家庭装饰品的掌控感和科技感。

1万+

Java 正则表达式的使用方法

本文详细介绍了Java正则表达式的使用方法,包括语法规则、核心类和实战案例。主要内容涵盖:1.基础语法如字符匹配、转义、量词和边界处理;2.分组与零宽断言等高级特性;3.Pattern和Matcher类的核心方法;4.实用案例包括手机号验证、URL提取和HTML清洗;5.性能优化建议,如避免回溯和预编译复用。通过系统学习这些知识,可以有效处理字符串匹配、提取和格式化等常见需求,提升开发效率。

Mr_Zhen的博客 1719

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

JAVA正则表达式使用总结

JAVA正则表达式使用总结 一、知识 1.*代表{0,} +代表{1,} ?代表{0,1} [0-9]+=[0-9]{1,} 表示匹配0~9中的任意数字,并且至少1位。 [0-9]*=[0-9]{0,} 表示匹配0~9中的任意数字,并且可以是0位(不存在)。 [0-9]?=[0-9]{0,1} 表示匹配0~9中的任意数字,并且只能是0位或1位。 如果至少需要2位数,最多8位数,

localhost01 1959

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Java程序中使用正则表达式

一、 简介 正则表达式是一种用来匹配字符串的强有力的武器。Java内置了强大的正则表达式的支持。 问题: 如何判断字符串是否是有效的电话号码? 如何判断字符串是否是有效的电子邮件地址? 如何判断字符串是否是有效的时间? … 解决: 方法一、通过程序判断,为每个用例创建判断规则,然后用代码实现。-----繁琐,重复 方法二、使用正则表达式,正则表达式可以用字符串来描述规则,并用来匹配字符串。 // 例如,判断手机号位数是否为11位,是否由数字组成。我们可以正则表达式<\d{11}> boolean

weixin_41769596的博客 2295

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

java 正则表达式使用_如何用正则表达式杀死Java

java 正则表达式使用 我们最近偶然发现了一个我们绝对不了解的现象:您可以使用简单的正则表达式杀死任何Java IDE以及任何Java进程… 回到大学后,我被告知正则表达式(称为正则语法或3型语法)总是以有限状态的自动机结束,因此可以在线性时间内进行处理(输入长度​​加倍,处理时间加倍)。 但是,这仅适用于“理智”的表达式。 正则表达式也可能导致不确定的有限状态自动机,事情可能变得很糟糕...

最佳 Java 编程 136

【java 正则表达式】记录所有在java中使用正则表达式的情况

本篇记录在java中邂逅正则表达式的所有美丽瞬间。因为在java和js中正则表达式的语法并不一致。 1.匹配字符串中有出现【2.1开头或者&amp;2.1或者&amp;3.1等的】Pattern m

dearbaba_8520的博客 189

如何在Java中使用正则表达式?

正则表达式是用于文本搜索的非常重要的工具。 以下是用于执行正则表达式搜索并基于正则表达式捕获字符串的不同部分的代码段 public class RegexTest { public static void main(String[] args) { String name = "01_My-File.pdf" ; match(name);...

最佳 Java 编程 899

【Java基础】Java正则表达式的使用

【Java基础】Java正则表达式的使用

2202_75462083的博客 2461

java contains 正则表达式_JAVA程序中使用正则表达式

import java.util.regex.Matcher;import java.util.regex.Pattern;/*** @author Administrator 测试正则表达式**/public class TestRegex {/*** alt+shift+j** @param args*/public static void main(String[] args) {/*** ...

weixin_39829501的博客 1141

java正则表达式的用法_Java 正则表达式的使用

Java 正则表达式的使用1:正则表达式语法大全字符说明\将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,"n"匹配字符"n"。"\n"匹配换行符。序列"\\"匹配"\","\("匹配"("。转义^在中括号里面和外面含义不同,如在外时,就表示开头,如^7[0-9]表示匹配开头是7的,且第二位是任一数字的字符串;如果在中括号里面,表示除了这个字符之外的任意字符(包括数字,特殊字符),如...

weixin_35837926的博客 197

JAVA使用正则表达式

https://www.cnblogs.com/Mustr/p/6060242.html

文盲青年的博客 516

一文教会你如何在Java中使用正则表达式

正则表达式一般用于字符串匹配, 字符串查找和字符串替换. 别小看它的作用, 在工作学习中灵活运用正则表达式处理字符串能够大幅度提高效率, 编程的快乐来得就是这么简单。一下...

Java极客技术 859

Java正则表达式的使用

Java正则表达式的使用主要在于理解其意义就可以,这里有一个简单的例子,注释很详细。 1 package emailJuge; 2 3 import java.util.Scanner;//倒入包,用来扫描键盘输入 4 5 /** 6 * @author 沽-名-钓-誉 7 */ 8 public class EmailJudge { 9 ...

dicekui4859的博客 160

Java正则表达式的使用总结

准备对文件进行逐行读取。对读取的每一行应用正则表达式进行解析。每一行的组成一共有6种情形: 以Employee开头的行,解析的正则表达式为:Employee.* 以Roster开头的行,解析的正则表达式为:Roster.* 以Period开头的行,解析的正则表达式为: Period\{(?<g1>\d\d\d\d)\-(?<g2>\d\d)\-(?<g3>\d\d)\,(?<g4>\d\d\d\d)\-(?<g5>\d\d)\-(?&...

nth2000的博客 169
上一篇: 一个大学生从堕落走向编程之路的感想
下一篇: java_IO流之SequenceInputStream合并流的使用
Sweeter
博客等级 码龄14年 81粉丝 41原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值