概括、ruby提供内建的正则表达式支持,正则表达式是字符串处理的屠龙,正则表达式使我们只需要描述
字符串,而具体的处理就交给正则引擎就可以了。
正则表达式由元字符,转义字符、POSIX字符及普通字符组成。
元字符
在ruby的正则表达式中,有些字符表示特殊的意义,他们表示字符的种类,位置,数量等等信息,它们是
.
, |
, ( )
, [ ]
, \
, ^
, { }
, +
, $
, *
, ?
◆ )
和 ]
只有在前面有(和]才是特殊字符。
◆ {
和 }
只有同时出现表示字符的数量是才是元字符。
◆ 对元字符进行转义就可以匹配元字符,例如 \(
匹配 (
◆ 元字符在不同的场合可能会具有不同的意义,例如()既可以表示分组也可以表示前向引用,同时还表示聚合。
转义字符及POSIX字符
转义字符及POSIX字符可以表示非打印字符或者一类字符。
普通字符
普通字符表示其自身。
正则表达式通过以下的方式来描述。
一、字符串里字符的种类?
字符或正则 |
表示的意义 |
.
|
匹配除换行符以外的任意字符 |
[abc] -
[^abc]
|
匹配字符数组中的任意一个 |
|
|
ab|bc 匹配ab和bc |
\d - \D
|
匹配数字 |
\s - \S
|
匹配空白符 |
\w - \W
|
匹配字母,数字,下划线 |
(?#comment)
|
注释 |
#{表达式}
|
表达式替换
|
普通字符 |
匹配自身,如/a/匹配"a" |
_____ |
|
_____ |
|
_____ |
|
_____ |
|
_____ |
|
POSIX字符类
POSIX字符 |
表示的意义 |
[:alnum:]
|
匹配小写字母或者数字 |
[:alpha:]
|
匹配大小写字母 |
[:cntrl:]
|
匹配控制字符 |
[:digit:]
|
匹配数字 |
[:graph:]
|
匹配除了空格以外的可打印字符 |
[:lower:]
|
匹配小写字符 |
[:print:]
|
匹配任何可打印字符 |
[:punct:]
|
匹配除了字母,数字及空格以外的可打印字符 |
[:space:]
|
匹配空白符 |
[:upper:]
|
匹配大写字母 |
[:xdigit:]
|
匹配16进制数字0-f |
二、字符串里的字符位置?
字符或正则 |
表示的意义 |
^
|
匹配一行的起始位置
|
$
|
匹配一行的结尾位置 |
\A
|
匹配字符串起始位置 |
\z
|
匹配字符串结尾位置 |
\b - \B
|
匹配单词边界 |
(?=reg)
|
后面匹配一个/reg/的位置 |
(?!reg)
|
后面不匹配一个/reg/的位置 |
(?<=reg)
|
前面面匹配一个/reg/的位置 |
(?<!reg)
|
前面不匹配一个/reg/的位置 |
三、字符串里的字符的数量?
字符或正则 |
表示的意义 |
*
|
>=0 |
+
|
>=1 |
?
|
0 或者 1 |
{m,n}
|
>=m 且 <=n |
{m,}
|
>=m |
{m}
|
==m |
?
|
在*,+,{}后表示数量尽量最少匹配 |
_____ |
|
备注
|
数量词可以应用于(reg)整体 |
四、正则表达式的分组
可以对正则表达式进行分组,并在匹配成功后把分组的值存储到$1,$2,$3,$4.......
print $1,"\n",$2 if "a1b2c3d4e5" =~ /(\w{2})(\w*)/
五、正则表达式的匹配选项
可以在正则表达式后加上一些选项,对正则表达式进行额外的控制。
i
表示大小写不敏感
print "true" if "a" =~ /A/i #输出true
x
表示扩展模式,可以在正则表达式中插入空白符,较长的正则采用这种方式具有良好的阅读性。
print "true" if \
"ab12ef" =~ \
/ab
\d+
ef
#正则内的单行注释
/x #输出true
m
表示跨行模式,在此模式下.
可以匹配换行符。
print $1 if "abc\nef" =~ /(.*)/m #输出abc\nef
o
表示正则里的#{}表达式只被替换一次
六、字符串的正则替换
print "abcd".sub(/\w/,"9")
print "\n"
print "abcd".gsub(/\w/,"9")
七、正则中的特殊全局变量
$1,$2,$3....分组匹配文本
$` 匹配文本之前的文本
$' 匹配文本之后的文本
print $`,"\n",$&,"\n",$' if "ab9cd" =~ /\d/
八、正则表达式产生方式
除了一般的//以外,%r{}也可以。
分享到:
相关推荐
Python课程设计,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。
内容概要:本文介绍了使用 Matlab 实现 SO-CNN-SVM 框架进行多输入单输出回归预测的全过程。该框架利用蛇群优化算法(SO)优化卷积神经网络(CNN)和 支持向量机(SVM),实现高效的特征提取和回归预测。文章详细描述了数据预处理、模型构建、SO算法优化、模型训练、可视化和 GUI 设计的步骤,并提供了完整的代码示例。 适合人群:具备一定机器学习和深度学习基础,熟悉 Matlab 编程的研究人员和开发人员。 使用场景及目标:① 工业制造中的设备故障预测和质量控制;② 金融分析中的市场价格预测和风险管理;③ 环境监测中的气候变化和空气质量预测。该框架的目标是提高预测精度,优化模型参数,缩短训练时间,增强模型泛化能力。 阅读建议:本文不仅详细介绍了理论背景和技术细节,还提供了实际操作的代码和 GUI 设计思路,建议读者在阅读过程中结合实际数据和代码进行实验,以更好地理解和掌握相关技术。
Java系统源码+社区养老服务系统 内容概要: 本资源包含了完整的Java前后端源码及说明文档,适用于想要快速搭建并部署Java Web应用程序的开发者、学习者。 技术栈: 后端:Java生态系统,包含Spring Boot、Shiro、MyBatis等,数据库使用Mysql 前端:Vue、Bootstrap、Jquery等 适用场景示例: 1、毕业生希望快速启动一个新的Java Web应用程序。 2、团队寻找一个稳定的模板来加速产品开发周期。 3、教育机构或个人学习者用于教学目的或自学练习。 4、创业公司需要一个可以立即投入使用的MVP(最小可行产品)。
Java系统源码+健身房管理系统 内容概要: 本资源包含了完整的Java前后端源码及说明文档,适用于想要快速搭建并部署Java Web应用程序的开发者、学习者。 技术栈: 后端:Java生态系统,包含Spring Boot、Shiro、MyBatis等,数据库使用Mysql 前端:Vue、Bootstrap、Jquery等 适用场景示例: 1、毕业生希望快速启动一个新的Java Web应用程序。 2、团队寻找一个稳定的模板来加速产品开发周期。 3、教育机构或个人学习者用于教学目的或自学练习。 4、创业公司需要一个可以立即投入使用的MVP(最小可行产品)。
阵列信号处理中,均匀线阵条件下,分析不同信噪比条件下,幅相误差对于测向角度偏差的影响
Python课程设计,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。
Python课程设计,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。
瓶罐检测26-CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rarDetectResiduos-V1 2024-02-24 3:32 PM ============================= *与您的团队在计算机视觉项目上合作 *收集和组织图像 *了解和搜索非结构化图像数据 *注释,创建数据集 *导出,训练和部署计算机视觉模型 *使用主动学习随着时间的推移改善数据集 对于最先进的计算机视觉培训笔记本,您可以与此数据集一起使用 该数据集包括6821张图像。 工具以创建格式注释。 将以下预处理应用于每个图像: *像素数据的自动取向(带有Exif-Arientation剥离) *调整大小为640x640(拉伸) 应用以下扩展来创建每个源图像的3个版本: *水平翻转的50%概率 *垂直翻转的50%概率 * -15和+15度之间的随机旋转 * 0到1.5像素之间的随机高斯模糊
名片管理系统.pdf
瓶子检测3-YOLOv9数据集合集.rarMY_DATASET11-V1 2022-12-28 1:46 AM ============================= *与您的团队在计算机视觉项目上合作 *收集和组织图像 *了解和搜索非结构化图像数据 *注释,创建数据集 *导出,训练和部署计算机视觉模型 *使用主动学习随着时间的推移改善数据集 对于最先进的计算机视觉培训笔记本,您可以与此数据集一起使用 该数据集包括1001张图像。 塑料 - 玻璃金属纸纸以yolov9格式注释。 将以下预处理应用于每个图像: *像素数据的自动取向(带有Exif-Arientation剥离) *调整到224x224(拉伸) 没有应用图像增强技术。
水瓶瓶罐检测58-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rarQaldyq Suryptau-V2 2024-02-26 8:05 PM ============================= *与您的团队在计算机视觉项目上合作 *收集和组织图像 *了解和搜索非结构化图像数据 *注释,创建数据集 *导出,训练和部署计算机视觉模型 *使用主动学习随着时间的推移改善数据集 对于最先进的计算机视觉培训笔记本,您可以与此数据集一起使用 该数据集包括2328张图像。 以可可格式注释了金属 - 柔性 - plastmassa-qaldyq。 将以下预处理应用于每个图像: *像素数据的自动取向(带有Exif-Arientation剥离) *调整大小为416x416(拉伸) 应用以下扩展来创建每个源图像的3个版本: *随机裁剪图像的0%至10% * -15和+15度之间的随机旋转 *随机的BRIGTHNESS调整-10%至+10% * -7%至 +7%之间的随机暴露调整
Python课程设计,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。
使用精品酒销售管理系统的用户分管理员和用户两个角色的权限子模块。 管理员所能使用的功能主要有:主页、个人中心、用户管理、商品分类管理、商品信息管理、系统管理、订单管理等。 用户可以实现主页、个人中心、我的收藏管理、订单管理等。 前台首页可以实现商品信息、新闻资讯、我的、跳转到后台、购物车等。 项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 服务器:tomcat7
1_io_thread_1734442494401.wmv
java 一个基于Java Web的在线问卷调查系统源码实例 一个基于Java Web的在线问卷调查系统源码实例
网站前台注重的功能实现包括会员注册、系统公告、项目查看、在线留言、关注收藏项目、众筹项目申请,网站后台注重的功能实现包括系统用户管理、用户注册审核、项目类别管理、项目信息管理、投资申请查看、投资申请审核、申请结果反馈。 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 服务器:tomcat7
以下是一个关于毕业设计的资源描述和项目源码的简要概述: 资源描述 该毕业设计项目为一个基于Spring Boot的在线学习系统。该项目使用了丰富的资源来确保项目的顺利完成。首先,通过数字图书馆和在线数据库(如谷歌学术)获取了大量的相关文献和最新研究成果,为项目的理论基础提供了坚实的支撑。其次,参考了一些电子书籍和国内外教程资源,学习了相关的开发技巧和最佳实践。此外,项目还利用了Spring Boot、MyBatis等开源框架,以及MySQL数据库,这些资源大大提高了开发效率和系统的稳定性。 在开发过程中,还参与了线上和线下的技术培训和研讨会,与其他开发者交流经验,解决了一些技术难题。这些活动不仅提供了宝贵的学习机会,还帮助更好地理解了项目的需求和实现方式。 项目源码概述 该项目源码主要包括以下几个部分: 后端代码:基于Spring Boot框架,实现了用户管理、课程管理、在线学习、模拟考试等功能。 前端代码:使用HTML、CSS和JavaScript(可能使用Vue.js或React.js)等技术,构建了友好的用户界面,使用户能够方便地浏览课程、进行在线学习和考试。 数据库脚本
如果在运维环境中,尤其是乙方,甲方客户为了安全一般不允许上传破解/绿色版等运维软件,这时候如果有官网下载的运维工具且是免费的,那不就可以正常使用了。 8款软件,显示版本到6,以后可不可以不清楚,现在我用绿色版用不上这个。 包含:xfile、xftp、xlpd、xmanager、xmanager 3d、xmanager powersuite、xshell、xshell plus
广东省深圳市公司申请助理级职称的主要步骤
杂货产品检测43-YOLO(v5至v9)、CreateML、Paligemma、TFRecord、VOC数据集合集.rarIPCV分配-V6 2024-01-21 6:10 PM ============================= *与您的团队在计算机视觉项目上合作 *收集和组织图像 *了解和搜索非结构化图像数据 *注释,创建数据集 *导出,训练和部署计算机视觉模型 *使用主动学习随着时间的推移改善数据集 对于最先进的计算机视觉培训笔记本,您可以与此数据集一起使用 该数据集包括7012张图像。 家庭废物以createMl格式注释。 将以下预处理应用于每个图像: *像素数据的自动取向(带有Exif-Arientation剥离) *调整大小为640x640(拉伸) 没有应用图像增强技术。