Java Web基础:第十五讲 正则表达式

【愚公系列】《Python网络爬虫从入门到精通》008-正则表达式基础 在数据处理和文本分析的领域,正则表达式(Regex)无疑是一项强大的工具。它以其灵活性和高效性,帮助我们从杂乱无章的文本中提取出所需的信息,进行模式匹配和数据验证。无论是在编程、数据清洗,还是在Web开发中,正则表达式都扮演着不可或缺的角色。在本期文章中,我们将深入探索正则表达式的基础知识。我们将介绍正则表达式的基本构成、常用符号及其功能,帮助你掌握这一强大工具的使用技巧。从简单的匹配到复杂的模式识别,我们将通过实例演示,让你轻松理解正则表达式的应用场景及其背后的逻辑。 阅读详情

 

本文内容摘自:《Java Web 开发教程——入门与提高篇(JSP+Servlet )》第55-58 页。
正则表达式提供了一种高级的、但不直观的字符串匹配和处理的方法。它描述了一种字符串匹配的模式,可以用来判断一个字符串是否满足某种格式,或者一个字符串是否含有某个子串等。
字符集
    正则表达式中可以使用的用于匹配的字符集如表3.1 所示。
表3.1 字符集
字符
作用
.
匹配除 /n 以外的任何一个字符。
[ ]
匹配包含在方括号内的任何一个字符。
^
用在方括号中表示匹配除方括号中字符以外的任何字符。
示例:
.at :匹配以任意字符开头,后面为at 的字符串。如“cat ”、“bat ”、“#at ”等。
[a-z] :匹配任意一个小写字母(a 到z 之间的)。如“a ”、“c ”、“e ”等。
[aeiou] :匹配任意一个元音字母。
[a-zA-Z] :匹配任意一个大写或小写字母。
[^a-z] :匹配任何不在a 到z 之间的字符。
重复
    用于确定重复次数的字符如表3.2 所示。
表3.2 重复次数
字符
作用
*
表示重复 0 次或以上。
+
表示重复 1 次或以上。
?
表示重复 0 次或 1 次。
示例:
[a-zA-Z]* :匹配任意大小写字母构成的字符串,也可以是空字符串。如:“abc ”。
[0-9]+ :匹配任何由数字构成的字符串,该字符串至少包含一个字符。如:“1234 ” 。
[a-z0-9]? :匹配空字符串,或者一个小写字母或数字。
子表达式
    子表达式的格式和作用如表3.3 所示。
表3.3 子表达式
字符
作用
()
将多个字符作为一个子表达式。
示例:
(very )*large :匹配“large ”、“very large ”、“very very large ”等。注意very 后面的空格。
子表达式计数
    子表达式可以出现多次,子表达式的计数如表3.4 所示。
表3.4 子表达式计数
字符
作用
{n}
表示重复 n 次。
{m,n}
表示重复 m~n 次。
{m,}
表示重复 m 次以上。
示例:
(very ){1} :匹配“very ”。
(very ){1,3} :匹配“very ”、“very very ”、“very very very ”。
(very ){1,} :匹配由一个或一个以上“very ”构成的字符串。                         
指定字符串的开始和末尾
   字符串的开始和结束符如表3.5 所示。
表3.5 开始和结尾
字符
作用
^
指定以某个字符串开始。
$
指定以某个字符串结尾。
^ 和 $
表示精确匹配某个字符串。
示例:
^zhang :匹配以“zhang ”开头的任意字符串。如“zhangsan ”。
cn$ :匹配以“cn ”结束的任意字符串。如:“sina.com.cn ”。
^[a-z]$ :匹配只包含a 到z 之间任意一个字符的字符串。如:“a ”。
注意:如果一个模式不包括^ 和$ ,那么它与任何包含该模式的字符串匹配。
思考:^[a-z] 和[a-z]$ 分别匹配什么样的字符串?
分支
    表示分支的字符如表3.6 所示。
表3.6 分支
字符
作用
|
表示匹配多个模式串中的任意一个。
 
示例:
com|edu|net :匹配com 、edu 或net 。
匹配特殊字符 
    在匹配特殊字符的时候需要用到转义字符,转义字符如表3.7 所示。
表3.7 特殊字符
字符
作用
/
用来转义特殊字符 。
示例:
// :匹配一个反斜杠。
/. :匹配一个圆点。
常见用法举例
^[a-zA-Z][a-zA-Z0-9_]*$ :匹配以字母开头,由字母、数字和下划线组成的字符串。如:“abc_123 ”。
^[a-zA-Z0-9]{6,}$ :匹配由字母和数字组成,长度不少于6 位的字符串。如:“123456 ” 。
^[ 0-9]{4}-[0-9]{2}-[0-9]{2}$ :匹配格式为“xxxx-xx-xx ”的字符串,要求x 只能是数字。常用于匹配日期,如:“2007-05-01 ”。
^[a-zA-Z][a-zA-Z0-9_/-]*@([a-zA-Z0-9/-]+/.)+[a-z]{2,3}$ :常用于匹配Email 。要求@ 符号前面是以字母开头,由字母、数字、下划线或减号组成的字符串;@ 符号后面的域名可以包含多个字符串,每个字符串由字母、数字或减号组成;最后一级域名只能包含2 个或3 个字母(例如cn 、com 等)。
^0[0-9]{2,3}-[0-9]{7,8}$ :常用于匹配电话号码。要求区号由0 开始,包含3 到4 位数字,区号和电话号码之间用减号分隔,电话号码由7 位或者8 位数字组成。
 
李绪成 优快云 Blog : http://blog.youkuaiyun.com/javaeeteacher
[网络安全自学篇] 十四.Python攻防之基础常识、正则表达式、Web编程和套接字通信(一) 这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步。前文分享了Wireshark抓包原理知识,并结合NetworkMiner工具抓取了图像资源和用户名密码,本文将讲解Python网络攻防相关基础知识,包括正则表达式、Web编程和套接字通信。本文参考了爱春秋ADO老师的课程内容,这里也推荐大家观看他Bilibili和ichunqiu的课程,同时也结合了作者之前的经验进行讲解。 阅读详情

相关推荐

基于STM32F407ZGT6与INMP441的I2S音频采集系统:从配置到实时波形显示

本文详细介绍了基于STM32F407ZGT6与INMP441麦克风模块的I2S音频采集系统设计与实现。从硬件选型、CubeMX配置到音频数据处理和上位机波形显示,全面解析了系统架构、DMA传输优化及常见问题解决方案,帮助开发者快速构建高精度音频采集系统。

weixin_33743661的博客 403

正则表达式校验密码策略最少8位,大小写字母加符号加数字的组合

在上面的示例代码中,定义了一个表单元素和一个密码输入框。当用户提交表单时,调用。如果你需要在表单中校验密码时,可以在表单提交时触发一个函数进行校验。如果密码符合要求,则提交表单;你可以将上面的正则表达式编译成一个 RegExp 对象,然后调用它的。方法,判断密码是否符合正则表达式的要求。在上面的示例代码中,首先定义了一个待校验的密码字符串。如果密码符合以上要求,这个正则表达式就会匹配成功。方法来测试一个字符串是否匹配一个正则表达式。方法会返回一个布尔值,如果匹配成功则返回。,然后将正则表达式编译成一个。

qqRZL的博客 5729

【上海大学计算机组成原理实验报告】七、程序转移机制

学习实现程序转移的硬件机制//掌握堆栈寄存器的使用//手动方式实现子程序调用转移过程//手动方式实现子程序返回转移过程//编程实现`OUT`寄存器交替显示`11`和`55`//若要求`11`和`55`各显示`50`次后停机,应该如何修改程序?//根据实验指导书的相关内容,实验箱系统的程序转移硬件机制在于,当`LDPC`有效时,如果此时`DUBS`上的值就是转移的目标地址,则此目标地址被打入`PC`,从而实现程序的转移;若`LDPC`为`0`是附带条件的,就形成“条件转移”。

HackerKevon的博客 2475

常用正则表达式积累

1、长度最少8位及以上,至少包含大写字母、小写字母、数字、以及特殊符号。2、长度最少8位及以上,至少包含字母、数字、以及特殊符号。

weixin_44191318的博客 416

UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position 0-4: ordinal not in range(128)

python3报错处理:UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 0-4: ordinal not in range(128) 一、报错场景 // 报错代码 Traceback (most recent call last): File "test_autoo3_2.py", line 214, in <module> main() File "test_autoo3_2.py",

浪里小飞侠的博客 4201

SAP农产品增值税进项税解决方案

(三)购进农产品用于生产经营且不构成货物实体的(包括包装物、辅助材料、燃料、低值易耗品等),用于生产适用13%税率货物的扣除率为10%,用于生产适用9%税率货物的扣除率为9%。具体计算公式为: 当期允许抵扣农产品增值税进项税额=当期耗用农产品数量×农产品平均购买单价×扣除率/(1+9%)

weixin_44228539的博客 1196

写给自己的正则总结

匹配电话号码 var phoneRe = /^1\d{10}$/; 匹配电信号码 var dxRegx = /^(133|149|153|180|181|189|177|173|199)\d{8}|(1700|1701|1702)\d{7}$/ 匹配联通号码 var ltRegx = /^(130|131|132|145|155|156|166|175|176|185|186|171)\d{8}|...

weixin_41796860的博客 249

点云统计滤波 (python详细过程版)【2025最新版】

统计滤波python详细过程版,博客长期更新,本文最近更新时间为:2025年1月12日。

点云侠的博客 5639

零基础入门JavaWeb——正则表达式

前端技术学习

星霖的博客 1074

Python爬虫终极指南:异步爬虫+Playwright逆向,高效爬取携程旅游数据

Playwright解决动态渲染和加密参数难题,模拟真实浏览器环境;aiohttp异步提升抓取效率,结合代理池和并发控制规避风控;指纹伪装、行为模拟等技巧大幅降低被检测概率。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2951

npm报错 npm WARN deprecated....的问题解决方式

报错 :npm WARN deprecated … 现象:无法进行有效的vue项目的部署以及npm install 命令的执行。 原因一:版本问题 说明:由于npm的版本过低或者过高导致的报错 检查版本: npm -v 如果版本是比较旧的,或者是最新的,这里可以进行对npm的更新和回退。 更新npm版本: npm updated -d 查看可以更新的版本 npm install -g npm 默认安装最新版本 安装回退指定的版本: npm updated -d 查看所有的版本 npm -g i.

任聪聪的博客 16万+

JavaWeb之正则表达式详解

什么是正则表达式 正则表达式是检查,匹配字符串的表达式 正则表达式是描述规则,主流语言都有良好支持 字符串校验,查找与替换是正则表达式主要使用场景 例如 一个检查输入身份证是否合法的案例 一个人的身份证有18位 例如 13010220200328091x 如果这个让我们用普通的程序思路来校验的话,就会费一些功夫,但是如果我们用正则表达式来做的话,就非常简单了 正则表达式:(^\d{15}$)|(^ld{18}$)|(^d{17}(\d|X|x)$) 这样是不是就一句话就搞定呢了,接下来,我们来了解一下正

羽毛的博客 1023

Vue+OpenLayers6一本通,OpenLayers6完整教程大全,OpenLayers6全知全解,OpenLayers6入门、实战、扩展进阶三合一专栏目录汇总

Gis开发入门,OpenLayers、Leaflet、Maplibre-gl和Cesiumjs地图引擎介绍以及几种地图服务vms、vmts介绍OpenLayers介绍,相比较其他地图引擎有什么优点OpenLayers7.x版本和6.x版本有什么区别,是否需要升级到OpenLayers7版本?OpenLayers6实战:OpenLayers创建自定义控件,以创建一个地图复位控件为例OpenLayers6实战,OpenLayers创建自定义鹰眼控件,自定义鹰眼控件样式,调整鹰眼控件位置、大小、文字和按钮等样式。

GIS技术方向,GIS地图技术分享(GIS入门、Openlayers教程、Leaflet教程),做最好的GIS地图开发教程。关注博主公众号:eguid 2201

JAVA-WEB阶段学习(一)

JAVA-WEB系列课程(一)

qq_16804847的博客 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【Java web】正则表达式

正则表达式是由一些特殊含义的字符组成的字符串,多用于查找、替换符合规则的字符串。主要使用Pattern以及Matcher实现在Java web中导入这两个类。

weixin_63226758的博客 1019

数学建模模型总结

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

以Web方向为基础的java学习路线

JAVA学习路线在没自学java之前,我还只会一点点C语言,也就是才熟悉什么叫变量、运算符、标识符,会点简单的循环来做简单的数学运算或这打印图形啥的。然而现在看来,这些已不足以视为有C的基础,最多只能算有编程基础吧。 现在我搞了java大概九个月了,因为最初开始搞java的时候就认定自己要往Web路线发展,没有考虑太多的行业发展前景以及钱景等等问题,但始终觉得确定方向在学习过程中有很大作用

Tinkle2015 4307

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Java正则表达式

Java正则表达式 第1章 正则表达式基础语法 1. 正则表达式的介绍 什么是正则表达式: * 正则表达式是检查、匹配字符串的表达式 * 正则表达式是描述规则,主流语言都有良好支持 * 字符串校验、查找与替换是正则表达式主要使用场景 2. 正则表达式字符范围匹配 正则表达式区分大小写 tool.oschina.net/regex 开源中国提供的正则表达式在线测试工具 正则表达...

紫蝶侠的博客 367

Java正则表达式笔记总结

一、简介 最近做一个web探测的项目,在项目中多处用到java正则表达式,今天将回顾的正则表达式做一个梳理,本文属于看完廖大佬笔记后的梳理,仅为平时参考。 二、学习资料 java正则表达式的学习参考以下学习资料即可: (1)菜鸟教程:菜鸟教程的正则基础基本讲的很可以了 (2)廖雪峰的官方网站——Java篇:廖大佬的Java教程还是讲的非常清晰的 三、知识总结 1、匹配规则 (1)单个匹配规则 <1>匹配任意字符 我们使用.匹配一个任意字符。 例如:正则表达式a....

javamaxiaojing的博客 365

Java学习手册:Web 安全基础

Web 安全是 JavaWeb 开发中不可忽视的重要部分。通过了解常见的 Web 安全威胁,如 SQL 注入、XSS 攻击、CSRF 攻击等,并采取相应的防护措施,可以大大提高应用的安全性。在开发过程中,应遵循安全编码的最佳实践,对用户输入进行严格的验证,对输出进行适当的编码,使用 HTTPS 加密数据传输,安全地管理会话,并定期进行安全审计和监控。通过综合运用这些安全策略,可以有效保护 Web 应用免受各种安全威胁的侵害,保障用户数据的安全和应用的稳定运行。

佩奇的技术笔记 1262

Java正则表达式实现web端输入验证

1、Java正则表达式基础                                                                                                   常用的规则符号 .                                          表示任意一个字符

纸上得来终觉浅,绝知此事要躬行 6438

字符串文本匹配神器———Java正则表达式

什么是正则表达式? 正则表达式是一种特殊的字符串模式,用于匹配一组字符串,就好比用模具做产品,而正则就是这个模具,定义一种规则去匹配符合规则的字符。 为什么要学正则表达式 对于正则表达式,相信很多人都知道,但是很多人的第一感觉就是难学,因为看第一眼时,觉得完全没有规律可寻,而且全是一堆各种各样的特殊符号,完全不知所云。 其实只是对正则不了解而以,了解了你就会发现,原来就这样啊因为正则所用的相关字符其实不多,也不难记,更不难懂,唯一难的就是组合起来之后,可读性比较差,不容易理解。但是你只要肯花个几个小时的

weixin_44991304的博客 3452

Java正则表达式与JavaScript或Web页面的综合使用

(很详细的解说)正则表达式与JavaScript或Web页面的使用并没有那么难

一名菜鸟qaq 1648

JAVA WEB——正则表达式总结

正则表达式是什么? 1,是检查,匹配字符串的表达式 2,是描述规则,主流语言都有良好的支持 3,字符串校验,查找与替换是正则表达式主要使用场景 字符范围匹配 元字符 多次重复匹配 定位匹配 贪婪模式与非贪婪模式 贪婪模式:在满足条件的情况下尽可能多的匹配到字符串(默认); 非贪婪模式:在满足条件的情况下尽可能少的匹配到字符串。 eg:\d{6,8}?(问号写在描述数...

HBlack1993的博客 618

Java Web基础:第十讲 Web应用输入概述

李绪成的一亩三分地 1821

java 正则表达式 例子_Java正则表达式例子汇总

1.过滤特殊字符package com.sheepmu.text;/** @author sheepmu*/public class HWCompetition {public static void main(String[] args){String s="a%&a^b}b*[cc]#d{d\"ee/ff\\gg"; //!!!!! \"是为了在字符串中转义"; \\ 只是为了在字...

weixin_33499715的博客 1381

Java 正则表达式综合实战:URL 匹配与源码解析

渐进式开发:从简单到复杂逐步构建正则表达式模块化设计:每个部分都有明确的功能划分(协议、域名、路径)灵活性增强:通过添加可选标记(?)使表达式更通用边界明确:始终使用和确保匹配整个字符串字符集合理定义:使用[\w-]等字符集准确描述允许的字符这种分步构建的方法不仅使正则表达式更易于理解和维护,也方便在开发过程中逐步测试每个部分的匹配效果。

keshi12354的博客 1365
上一篇: Java Web基础:第十四讲 客户端验证的常用方法
下一篇: Java基础:第二十三讲 面向对象概述
老李-大连
博客等级 码龄20年 3206粉丝 308原创
评论 11
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值