java正则匹配英文句号_Scala 正则表达式 0411

b580a4bdc41c6b8ea859e73a03e3e2d4.png

Scala 正则表达式

Scala 通过 scala.util.matching 包中的 Regex 类来支持正则表达式。以下实例演示了使用正则表达式查找单词 Scala :

import scala.util.matching.Regexobject Test {def main(args: Array[String]) {val pattern = "Scala".rval str = "Scala is Scalable and cool"println(pattern findFirstIn str)}
}

执行以上代码,输出结果为:

$ scalac Test.scala 
$ scala Test
Some(Scala)

实例中使用 String 类的 r() 方法构造了一个Regex对象。

然后使用 findFirstIn 方法找到首个匹配项。

如果需要查看所有的匹配项可以使用 findAllIn 方法。

你可以使用 mkString( ) 方法来连接正则表达式匹配结果的字符串,并可以使用管道(|)来设置不同的模式:

import scala.util.matching.Regexobject Test {def main(args: Array[String]) {val pattern = new Regex("(S|s)cala")  // 首字母可以是大写 S 或小写 sval str = "Scala is scalable and cool"println((pattern findAllIn str).mkString(","))   // 使用逗号 , 连接返回结果}
}

执行以上代码,输出结果为:

$ scalac Test.scala 
$ scala Test
Scala,scala

如果你需要将匹配的文本替换为指定的关键词,可以使用 replaceFirstIn( ) 方法来替换第一个匹配项,使用 replaceAllIn( ) 方法替换所有匹配项,实例如下:

object Test {def main(args: Array[String]) {val pattern = "(S|s)cala".rval str = "Scala is scalable and cool"println(pattern replaceFirstIn(str, "Java"))}
}

执行以上代码,输出结果为:

$ scalac Test.scala 
$ scala Test
Java is scalable and cool

正则表达式

Scala 的正则表达式继承了 Java 的语法规则,Java 则大部分使用了 Perl 语言的规则。

下表我们给出了常用的一些正则表达式规则:

表达式匹配规则^匹配输入字符串开始的位置。$匹配输入字符串结尾的位置。.匹配除"rn"之外的任何单个字符。[...]字符集。匹配包含的任一字符。例如,"[abc]"匹配"plain"中的"a"。[^...]反向字符集。匹配未包含的任何字符。例如,"[^abc]"匹配"plain"中"p","l","i","n"。A匹配输入字符串开始的位置(无多行支持)z字符串结尾(类似$,但不受处理多行选项的影响)Z字符串结尾或行尾(不受处理多行选项的影响)re*重复零次或更多次re+重复一次或更多次re?重复零次或一次re{ n}重复n次re{ n,}re{ n, m}重复n到m次a|b匹配 a 或者 b(re)匹配 re,并捕获文本到自动命名的组里(?: re)匹配 re,不捕获匹配的文本,也不给此分组分配组号(?> re)贪婪子表达式w匹配字母或数字或下划线或汉字W匹配任意不是字母,数字,下划线,汉字的字符s匹配任意的空白符,相等于 [tnrf]S匹配任意不是空白符的字符d匹配数字,类似 [0-9]D匹配任意非数字的字符G当前搜索的开头n换行符b通常是单词分界位置,但如果在字符类里使用代表退格B匹配不是单词开头或结束的位置t制表符Q开始引号:Q(a+b)*3E可匹配文本 "(a+b)*3"。E结束引号:Q(a+b)*3E可匹配文本 "(a+b)*3"。

正则表达式实例

实例描述.匹配除"rn"之外的任何单个字符。[Rr]uby匹配 "Ruby" 或 "ruby"rub[ye]匹配 "ruby" 或 "rube"[aeiou]匹配小写字母 :aeiou[0-9]匹配任何数字,类似 [0123456789][a-z]匹配任何 ASCII 小写字母[A-Z]匹配任何 ASCII 大写字母[a-zA-Z0-9]匹配数字,大小写字母[^aeiou]匹配除了 aeiou 其他字符[^0-9]匹配除了数字的其他字符d匹配数字,类似: [0-9]D匹配非数字,类似: [^0-9]s匹配空格,类似: [ trnf]S匹配非空格,类似: [^ trnf]w匹配字母,数字,下划线,类似: [A-Za-z0-9_]W匹配非字母,数字,下划线,类似: [^A-Za-z0-9_]ruby?匹配 "rub" 或 "ruby": y 是可选的ruby*匹配 "rub" 加上 0 个或多个的 y。ruby+匹配 "rub" 加上 1 个或多个的 y。d{3}刚好匹配 3 个数字。d{3,}匹配 3 个或多个数字。d{3,5}匹配 3 个、4 个或 5 个数字。Dd+无分组: + 重复 d(Dd)+/分组: + 重复 Dd 对([Rr]uby(, )?)+匹配 "Ruby"、"Ruby, ruby, ruby",等等

注意上表中的每个字符使用了两个反斜线。这是因为在 Java 和 Scala 中字符串中的反斜线是转义字符。所以如果你要输出 ..,你需要在字符串中写成 .. 来获取一个反斜线。查看以下实例:

import scala.util.matching.Regexobject Test {def main(args: Array[String]) {val pattern = new Regex("abl[ae]d+")val str = "ablaw is able1 and cool"println((pattern findAllIn str).mkString(","))}
}

执行以上代码,输出结果为:

$ scalac Test.scala 
$ scala Test
able1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/499029.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

onclick进不去ajax,在ajax调用之后处理onclick函数

在提交表单(ajax调用)后,我正在尝试选择并专注于选择组件ID.var myFunc function() {document.getElementById(form:#{bean.componentId}).focus();document.getElementById(form:#{bean.componentId}).select();};$(document).ready(function() {myFunc();});...这个解决方案…

撤销前进快捷键_电脑win7系统的快捷键大全

电脑在日常工作中经常需要使用到系统自带的快捷键,这样能够大大提高工作效率,比使用鼠标去点击查找方便省事多了,比如常用的复制(Ctrlc)粘贴(Ctrlv),今天就来给大家讲讲Windows系统的快捷键,可以说是快捷键大全啦。一、…

jedis依赖_SpringBoot整合Jedis实现redis缓存

我是一个java开发者,我的文章,没有华丽的言辞,没有666的版式,这些都是我自己工作中用到的解决方案,很多都是直接粘贴的源码,在这里与君分享。如果喜欢这里文章可以关注我,我回继续发的&#xff…

软件文档 服务器上,服务器上需要什么软件

服务器上需要什么软件 内容精选换一换华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。MindStudio所在的环境为开发环境,开发人员可以进…

c++用new求数组中n个数的和_在C++中实现任意大小数组的定义方法

在C中,定义数组的方法一般为:float a[4]; float a[][8];上述定义中,往往需要数组的大小已知,也就是说程序需要事先设定数组的大小。一旦设定的大小不满足需求时,需要修改代码,再重新编译。这种方法显然不太…

python元组创建_如何在Python中创建一个空元组的元组?

如何创建仅包含一个空元组(即(()))的元组? 我尝试了tuple(tuple()),tuple(tuple(tuple())),tuple([])和tuple(tuple([])),它们都给了我()。 我使用这种东西的原因如下:假设您有n个袋子和m个物品。 为了表示包中的项目列…

服务器补丁 系统,操作系统补丁服务器

操作系统补丁服务器 内容精选换一换北京时间1月3日,Intel处理器芯片被曝出存在严重的Meltdown和Spectre安全漏洞,漏洞详情如下:漏洞名称:Intel处理器存在严重芯片级漏洞漏洞编号:CVE-2017-5753、CVE-2017-5715、CVE-20…

python drop_duplicates_Pandas drop_duplicates方法不起作用

如错误消息所示,drop_duplicates不能用于数据帧中的列表。但是,您可以在作为str的数据帧上删除重复项,然后使用结果中的索引从原始df中提取行。设置df pd.DataFrame({Keyword: {0: apply, 1: apply, 2: apply, 3: terms, 4: terms},X: {0: […

matlab 周立功can_隐藏在CAN协议底层的编码方式——到底是大端还是小端?

当我们想要讨论CAN协议底层发送到数据线上的二进制信号的编码方式时,最值得关注的两点是:字节编码(Endianness)和比特顺序(Bit Numbering)。先一句话揭晓答案:CAN协议的字节编码是大端编码&…

samba服务器新建文件权限,Ubuntu中安装samba服务器创建文件共享的方法及普通用户设置共享的问题解析...

Ubuntu中安装samba服务器创建文件共享的方法及普通用户设置共享的问题解析发布时间:2011-01-04 19:10:00 作者:佚名 我要评论本文是基于ubuntu桌面版进行操作说明的。前面的设置都是管理员进行的,这里说的管理员就是可以使用sudo命令&am…

flashpaper打印机没有被正确安装_没有正确保存与安装,可导致80%的轴承提早失效...

轴承损坏可谓司空见惯,可您是否知道,80%的轴承提早失效是因为没有正确地安装。轴承的正确安装,不仅可以增加轴承的使用寿命,降低成本,还可以大大提高生产效益。轴承安装与常规其他部件安装有很大区别,为了实…

语言程序设计第4版黄洪艺_谭浩强《C程序设计》第4版网授精讲班【教材精讲+考研真题串讲】视频网课讲义课程资料...

谭浩强《C程序设计》(第4版)网授精讲班【教材精讲+考研真题串讲】网授课程谭浩强《C程序设计》(第4版)网授精讲班【注:因第11章考试不做要求,所以老师没有讲解!】【共31课时】序号 名…

rabbitmq实例_RabbitMQ不得不知道的点

RabbitMQ的优缺点优点这边的流量削峰功能主要应用在秒杀活动中,在秒杀活动中一般因为流量过大,导致应用挂掉,为了解决这个问题,在应用前端、库存系统前端加入消息队列,在订单系统中,服务器收到用户的请求后…

图片优化_网站里的图片应该如何优化

我们一直都在做网站关键词、内页关键词、标签等。但很多朋友都忽略了网站里的图片如何优化。近年来百度图片识别、360图片识别都在不断升级功能上已经很完善了,所以我们应该对网站图片进行优化,应该做seo的朋友们重视起来, 下面笔者跟大家分享…

rabbitmq 取消消息_mall整合RabbitMQ实现延迟消息

本文主要讲解mall整合RabbitMQ实现延迟消息的过程,以发送延迟消息取消超时订单为例。项目使用框架介绍RabbitMQRabbitMQ是一个被广泛使用的开源消息队列。它是轻量级且易于部署的,它能支持多种消息协议。RabbitMQ可以部署在分布式和联合配置中&#xff0…

vue 将行转换成对象_Vue简化版实现

Vue整体结构Vue: 把data中的成员注入到Vue实例,并且把data中的成员转换成getter, setterObserver: 劫持对象的所有属性, 如有变动可拿最新的值, 通知DepCompiler:解析每一个元素中的指令/插值表达式, 替换成相应的数据Dep: 发布者…

python 如何修改字典的key值_如何使用python技术完成数据集缺失值多种应用场景的滤除或填充?...

前言在数据处理的过程中,我们应该都有这样的体会,本质上数据处理与分析是相互协作,彼此成就的过程。比如,我们会用数据分析统计数据集中的缺失值、异常值,更直观的也会进阶到数据可视化的部分(到达该部分一般是成了文章…

vue 接口节流_vue防抖节流之v-debounce--throttle使用指南

最新封装了一个vue防抖节流自定义指令,发布到npm上,有用欢迎star,谢谢!使用比较简单,取消利用vue注册事件,采用指令来注册事件,防抖指令v-debounce,节流指令v-debounce,使用方式分为两种,传入对…

python graphics 清空 图_【手把手教你】使用Python玩转金融时间序列模型

01引言上一篇推文【Python量化基础】时间序列的自相关性与平稳性着重介绍了时间序列的一些基础概念,包括自相关性、偏自相关性、白噪声和平稳性,以及Python的简单实现。本文在此基础上,以沪深300指数收益率数据为例,探讨如何使用P…

mysql按字段同步_MySQL同步(一) 基础知识

6 MySQL 同步同步功能在MySQL 3.23.15就开始引进了,它可以把一个MySQL服务器上的数据复制到另一个服务器上去。本章描述了MySQL的各种复制特性。介绍了同步的概念,如何设置同步服务器,以及可用服务器的参照。还提供了一系列的常见问题及其答案…