Java正则表达式

深入java 定义正则表达式 这篇文章总结java1.4之后加入的正则表达式,总结他的使用。更多的源代码请访问我的github:https://github.com/yangsheng20080808/deepIntoJava本文分为3大部分 正则表达式的通用定义规则 正则表达式定义的例子 附加常用的匹配例子 正则表达式的通用定义规则使用正则表达式我们只要关心一个类即可:java.util.regex.Pattern 摘抄自官 阅读详情

正则表达式一般用于字符串匹配、查找、替换、分割。例如:从网页中找出email地址,IP地址是否正确,从网页中找出连接等等。

符号意思
\|反斜杠
\t间隔(’\u0009’)
\n换行(’\u000A’)
\r回车(’\u000D’)
\d数字 等价于[0-9]
\D非数字 等价于[^0-9]
\s空白符号 等价于[\t\n\x0B\f\r]
\S非空白符号 等价于[^\t\n\x0B\f\r]
\w单独字符 等价于[a-zA-Z_0-9]
\W非单独字符 等价于[^a-zA-Z_0-9]
\f换页符
\eEscape
\b一个单词的边界
\B一个非单词的边界
\G前一个匹配的结束
^限制开头 ^java 条件限制为以Java为开头字符
$限制结尾 java$ 条件限制为以java为结尾字符
.限制除\n以外任意一个单独字符 java.. 条件限制为java后除换行外任意两个字符
[a-z]条件限制在小写a to z范围中一个字符
[A-Z]条件限制在大写A to Z范围中一个字符
[a-zA-Z]条件限制在小写a to z或大写A to Z范围中一个字符
[0-9]条件限制在小写0 to 9范围中一个字符
[0-9a-z]条件限制在小写0 to 9或a to z范围中一个字符
[0-9[a-z]]条件限制在小写0 to 9或a to z范围中一个字符(交集)
[^a-z]条件限制在非小写a to z范围中一个字符
[^A-Z]条件限制在非大写A to Z范围中一个字符
[^a-zA-Z]条件限制在非小写a to z或大写A to Z范围中一个字符
[^0-9]条件限制在非小写0 to 9范围中一个字符
[^0-9a-z]条件限制在非小写0 to 9或a to z范围中一个字符
[^0-9[a-z]]条件限制在非小写0 to 9或a to z范围中一个字符(交集)
*限制条件为特定字符出现0次以上,例如, J* 0个以上J;.* 0个以上任意字符;J.*D J与D之间0个以上任意字符
+限制条件为特定字符出现1次以上。 J+ 1个以上J ; .+ 1个以上任意字符; J.+D J与D之间1个以上任意字符。
?限制条件为特定字符出现有0或1次以上。例如,JA? J或者JA出现。
{}限制条件为连续出现指定次数字符。 例如, J{2} JJ; J{3} JJJ; J{3,} JJJ,JJJJ,JJJJJ…..(3次以上J并存);J{a,b} 有a个以上,b个以下的J
|限制条件为两者取一。例如,Java

举例

  • 在字符串包含验证时
Pattern pattern = Pattern.compile("^Java.*");
Matcher matcher = pattern.matcher("Java不是人。");
boolean b = matcher.matches();
System.out.print(b+"");

/**
* 结果为: true
*/
  • 以多条件分割字符串时
        Pattern pattern = Pattern.compile("[,|]+");
        String[] strs = pattern.split("Java Hello World  Java,Hello,,World|Sun");
        for (String str:strs) {
            System.out.print(str+" ");
        }


        /**
         * 结果为: Java Hello World  Java Hello World Sun 
         */
  • 文字替换(首次出现字符)
        Pattern pattern = Pattern.compile("正则表达式");
        Matcher matcher = pattern.matcher("正则表达式 Hello World,正则表达式 Hello World");
        System.out.print(matcher.replaceFirst("Java"));


        /**
         * 结果为: Java Hello World,正则表达式 Hello World
         */
  • 文字替换(全部)
        Pattern pattern = Pattern.compile("正则表达式");
        Matcher matcher = pattern.matcher("正则表达式 Hello World,正则表达式 Hello World");
        System.out.print(matcher.replaceAll("Java"));


        /**
         * 结果为: Java Hello World,Java Hello World
         */
  • 文字替换(置换字符)
        Pattern pattern = Pattern.compile("正则表达式");
        Matcher matcher = pattern.matcher("正则表达式 Hello World,正则表达式 Hello World");
        StringBuffer sbr = new StringBuffer();
        while (matcher.find()){
            matcher.appendReplacement(sbr,"Java");
        }
        matcher.appendTail(sbr);
        System.out.print(sbr.toString());


        /**
         * 结果为: Java Hello World,正则表达式 Hello World
         */
  • 验证是否为邮箱地址
        String str = "www.ceponline@yahoo.com.cn";
        Pattern pattern = Pattern.compile("\\w+([-+.]\\w+)*@([\\w\\-]+\\.)+[\\w-]+");
        Matcher matcher = pattern.matcher(str);

        System.out.print(matcher.matches() + "");


        /**
         * 结果为: true
         */
  • 去除html标记
        Pattern pattern = Pattern.compile("<[^>]+>");
        Matcher matcher = pattern.matcher("<a href=/\"index.html/\">主页</a>");

        System.out.print(matcher.replaceAll(""));


        /**
         * 结果为: 主页
         */
  • 查找html中对应条件字符串
        Pattern pattern = Pattern.compile("href=/\"(.+?)/\"");
        Matcher matcher = pattern.matcher("<a href=/\"index.html/\">主页</a>");

        if (matcher.find()) {
            System.out.print(matcher.group(1));
        }

        /**
         * 结果为: index.html
         */
  • 截取http://地址
        Pattern pattern = Pattern.compile("https?://[\\w.]*");
        Matcher matcher = pattern.matcher("dsdsds<http://dsds//gfgffdfd>fdf");

        if (matcher.find()) {
            System.out.print(matcher.group());
        }

        /**
         * 结果为: http://dsds
         */

比较常用的正则表达式

字符代表意义
[\u4e00-\u9fa5]匹配中文字符
\n\s*\r匹配空白行,可用来删除空白行
^\s*|\s*$匹配首尾空白字符
\w+([-+.]\w+)*@\w+([-+.]\w+)*验证Email地址
https?://[^\s]*匹配URL地址
Java 正则表达式 正则表达式中存在一些预定义字符,它们可以匹配特定的字符集合。\d:匹配任意数字字符,相当于字符类[0-9]。\D:匹配任意非数字字符,相当于字符类[^0-9]。\s:匹配任意空白字符,包括空格、制表符、换页符等,相当于字符类[f \r\t\v]。\S:匹配任意非空白字符,相当于字符类。w:匹配任意字母、数字或下划线字符,相当于字符类。\W:匹配任意非字母、数字或下划线的字符,相当于字符类。:通常用于匹配除换行符之外的任意单个字符。但在一些情况下,它可以配置为匹配包括换行符在内的任意字符。 阅读详情

相关推荐

关于HC32F460 输出可调占空比PWM波遇到的问题记录

文章目录问题记录一、问题分析二、解决方法总结 问题记录 芯片:HC32F460系列 功能:PWM电机调速 最近产品开发,需要用到HC32的PWM输出来控制电机的转速。参考官方的例程很快就完成了相关的功能,但是,后面在测试,重复开关电机的时候,发现电机的转速时大时小。 一、问题分析 一开始,怀疑是相关寄存器的设置出错导致的问题。因此在设置PWM输出时加上LOG打印,上机测试并没有发现问题。 用示波器抓取波形,这是正常状态下的波形(上电默认配置成5kHz,70%占空比输出) 这是转速较小时的波形输出 .

Top0_0lll的博客 6165

Java——正则表达式详解

Java对正则表达式的支持是从1.4版本开始的,此前的JRE版本不支持正则表达式。Java语言中的正则表达式匹配功能主要是通过和类实现的。find():在一个字符串里寻找一个给定模式的匹配:用一个给定的模式尝试匹配一个字符串的开头matches():用一个给定的模式去尝试匹配一个完整的字符串:进行替换操作,对所有的匹配都进行替换:进行替换操作,只对第一个匹配进行替换compile():把一个正则表达式编译成一个模式flags():返回某给定模式的匹配标志matches()

吴声子夜歌的博客 2万+

yakit 验证码识别 进行webfuzzer

在渗透测试的过程中,我们可能需要对管理员密码进行枚举,或者密码喷洒的时候,遇到验证码就很烦。有没有自动化识别验证码的办法呢?有的,兄弟,有的。验证码的识别率很低,captcha-killer-modified对算术验证码识别正确率非常低,还会识别成乱七八糟的结果,这就非常麻烦。因为你不知道到底是验证码不对,还是密码不对。这是 ddddocr 识别率的问题,如果师傅们找到准确度更高的工具,完全可以替换上去。

Arkmornings的博客 1663

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

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

繁依Fanyi的博客 1万+

谷歌账号国家或地区设置修改全攻略:条件、流程与避坑指南

谷歌账号的国家或地区设置与付款资料、账号历史行为及登录环境强绑定,修改时需满足特定条件。其原理在于地区作为索引键,关联内容库、货币结算和风控策略。正确切换可解决内容推荐错乱、付款失败等问题,适用于搬家、订阅区域限定服务等场景。操作前需在目标地区创建付款资料、清空余额并取消订阅,且一年仅能修改一次。本文详解从准备到验证的完整流程,并揭示官方文档未提及的实操陷阱,助你安全完成地区切换。

weixin_42521558的博客 2238

Python量化交易实战:如何用pytdx库快速解析通达信.day文件(附完整代码)

本文详细介绍了如何使用Python的pytdx库高效解析通达信.day本地数据文件,构建免费、稳定的量化交易数据源。文章提供了从环境配置、基础数据读取、复权处理到板块信息获取的完整实战代码,并演示了如何将处理后的数据无缝接入Backtrader等回测框架,为量化策略开发提供可靠的数据基础。

ppp33的博客 1141

【Java从入门到精通】Java 正则表达式

正则表达式定义了字符串的模式。正则表达式可以用来搜索、编辑或处理文本。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。Java 提供了 java.util.regex 包,它包含了 Pattern 和 Matcher 类,用于处理正则表达式的匹配操作。

RL2698853114的博客 1309

Flow Matching实战:5步搞定图像生成模型优化(附PyTorch代码)

本文提供了一份基于Flow Matching框架优化图像生成模型的实战指南。通过五个关键步骤,详细讲解了从环境配置、核心概念梳理到构建向量场网络、设计损失函数、编写训练循环以及选择ODE求解器进行采样的完整流程,并附有可运行的PyTorch代码,帮助开发者快速掌握这一高效的生成式建模技术。

weixin_29065959的博客 319

java正整数正则表达式_Java 正则表达式

Java 正则表达式正则表达式定义了字符串的模式。正则表达式可以用来搜索、编辑或处理文本。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。正则表达式实例一个字符串其实就是一个简单的正则表达式,例如 Hello World 正则表达式匹配 "Hello World" 字符串。.(点号)也是一个正则表达式,它匹配任何一个字符如:"a" 或 "1"。下表列出了一些正则表达式的实例及描述:正...

weixin_35652131的博客 4883

特征提取神操作,登上Nature!计算速度狂提300%!

登上Nature!作者提出CVOCA,一种能同时处理数据的幅度和相位信息的卷积模型,在性能远超SOTA的同时,计算速度更是狂飙300%!实际上,作为机器学习和深度学习的核心技术,特征提取一直都是研究的热门!它直接影响着模型的准确性、计算效率、可解释性……同时,它也是我们改模型涨点,最好操作的部分!因为可切入点的真的非常之丰富,不管是轻量化、多尺度、时域与频域结合等,都能使模型性能得到提升!

2401_82426425的博客 4035

太空安全卫士:基于YOLOv5的空间态势感知系统(实现轨道碰撞预警与太空环境保护)

做完这个项目,你会发现自己完整走过了“数据采集→标注→模型训练→功能集成→界面开发”的毕设全流程,这不仅是技术能力的证明,更是对“技术守护宇宙安全”这一理念的实践。答辩时,你可以重点讲这几点:系统解决了航天监测的哪些痛点、YOLOv5在太空目标检测中的性能优势、系统未来能怎么优化(比如对接航天监测网络、实现实时轨道预测)。未来,这个系统还能往“更智能”的方向发展:比如结合轨道计算预测碰撞风险、开发移动端APP让天文爱好者参与太空垃圾上报、在航天任务中实现全自动避障决策……想象空间很大。

m0_71589036的博客 88

Java正则表达式——Java筑基

正则表达式并不仅仅局限于某种语言,但是在每个语言中都有差异。

qq_42544728的博客 2849

AI工具赋能日常工作的实践指南:以产品经理与程序员为例

AI工具赋能日常工作的实践指南:以产品经理与程序员为例

专注于编程、AI、人工智能等多个领域内容研究和分析 591

java 端口 正则表达式_Java 正则表达式

Java 正则表达式正则表达式定义了字符串的模式。正则表达式可以用来搜索、编辑或处理文本。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。正则表达式实例一个字符串其实就是一个简单的正则表达式,例如 Hello World 正则表达式匹配 "Hello World" 字符串。.(点号)也是一个正则表达式,它匹配任何一个字符如:"a" 或 "1"。下表列出了一些正则表达式的实例及描述:正...

weixin_31829387的博客 673

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: 华为 emui 刷机解锁及回锁教程
下一篇: GLSL基础
Bobby_lyc
博客等级 码龄16年 1164粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值