Scala学习笔记--正则表达式基础知识、如何在scala内使用
正则表达式语法:https://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx
基础知识:正则表达式30分钟入门教程 http://www.jb51.net/tools/zhengze.html 版本:v2.33 (2013-1-10) 作者:deerchao 转载请注明来源
使用格式: 见java API http://docs.oracle.com/javase/7/docs/api/
java : java.util.regex.Pattern
scala : scala.util.matching
scala里使用正则表达式
可以通过向Regex构造器传递字符串构造新的正则表达式。
val Decimal = new Regex("(-)?(\\d+)(\\.\\d*)?")
注意:每个反斜杠都出现两次,因为Java和Scala里单个反斜杠是字符串文本的转义符。
Scala的原始字符串提供了另一种方案:将原始字符串夹在三引号(""")之间。这样原始字符串的所有字符与输入完全一致
val Decimal = new Regex("""(-)?(\d+)(\.\d*)?""")
也可写为
val Decimal = """(-)?(\d+)(\.\d*)?""".r
即在字符串后面添加.r即可获得正则表达式。
用正则表达式查找:
regex findFirstIn str:查找字符串str中正则表达式regex的首次出现,返回Option类型的结果
regex findAllIn str:查找字符串str中正则表达式regex的所有出现,返回Option类型的结果
regex findPrefixOf str:查找字符串str中开始位置正则表达式regex的出现,返回Option类型的结果
def main(args:Array[String]):Unit={
val Decimal = """(-)?(\d+)(\.\d*)?""".r;
val input : String = "My String is for -1.0 to 99 by 3";
//查找出所有的数字
println("==number==")
for(s<- Decimal findAllIn input)
println(s);
//查找第一个数字
println("==first number==");
println(Decimal findFirstIn input);
println("查找开头为数字的字符串的首个数字");
//若字符串以数字为开头则输出Some(num),否则输出None
println(Decimal findPrefixOf input)
}
结果:
==number==
-1.0
99
3
==first number==
Some(-1.0)
查找开头为数字的字符串的首个数字
None
Scala学习笔记--正则表达式基础知识、如何在scala内使用的更多相关文章
- MyBatis:学习笔记(1)——基础知识
MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...
- C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)
一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字 ...
- C#学习笔记(基础知识回顾)之值传递和引用传递
一:要了解值传递和引用传递,先要知道这两种类型含义,可以参考上一篇 C#学习笔记(基础知识回顾)之值类型和引用类型 二:给方法传递参数分为值传递和引用传递. 2.1在变量通过引用传递给方法时,被调用的 ...
- C#学习笔记(基础知识回顾)之值类型和引用类型
一:C#把数据类型分为值类型和引用类型 1.1:从概念上来看,其区别是值类型直接存储值,而引用类型存储对值的引用. 1.2:这两种类型在内存的不同地方,值类型存储在堆栈中,而引用类型存储在托管对上.存 ...
- Quartz学习笔记:基础知识
Quartz学习笔记:基础知识 引入Quartz 关于任务调度 关于任务调度,Java.util.Timer是最简单的一种实现任务调度的方法,简单的使用如下: import java.util.Tim ...
- .net学习笔记---xml基础知识
一.XML简介 XML是一种标记语言,用于描述数据,它提供一种标准化的方式来来表示文本数据.XML文档以.xml为后缀.需要彻底注意的是XML是区分大小写的. 先从一个简单的XML例子来了解下xml基 ...
- Docker的学习笔记(一)基础知识
概述 本人最近在学习docker相关的知识,既是工作本身的需要也是自己对技术的追求的必要,以后我也会推出容器相关的随笔,既可以增长自己的知识,也可以和读者广泛交流,岂不乐乎?话不多说.第一篇先介绍do ...
- (C/C++学习笔记) 一. 基础知识
一. 基础知识 ● 程序和C/C++ 程序: 根据Wirth (1976), Algorithms + Data Structures = Programs. Whence C: 1972, Denn ...
- C#学习笔记(基础知识回顾)之枚举
一:枚举的含义 枚举是用户定义的整数类型.在声明一个枚举时,要指定该枚举的示例可以包含的一组可接受的值.还可以给值指定易于记忆的名称.个人理解就是为一组整数值赋予意义. 二:枚举的优势 2.1:枚举可 ...
随机推荐
- JavaWeb学习笔记--Listener
JSP中的监听器 Web程序在服务器运行的过程中,程序内部会发生多事件,如Web应用的启动和停止.Session会话的开始和销毁.用户请求的开始和结束等等.有时程序员需要在这些事件发生的时机执行一 ...
- Spark问题记录
Spark 多线程时的序列化问题 临时记录 Exception in thread "Thread-28" org.apache.spark.SparkException: Ta ...
- vim 折叠代码技巧汇总
以下命令输入的方式: 如zo命令,先按z键,松开后按o键即可展开折叠. 一.打开.关闭折叠 zo 展开折叠,只展开最外层的折叠. zO 对所在范围内所有嵌套的折叠点展开,包括嵌套折叠. zc 折叠,只 ...
- cf C. Valera and Elections
http://codeforces.com/contest/369/problem/C 先见边,然后dfs,在回溯的过程中,如果在这个点之后有多条有问题的边,就不选这个点,如果没有而且连接这个点的边还 ...
- MySQL的SQL_CALC_FOUND_ROWS真的很慢么?
分页程序一般由两条SQL组成: SELECT COUNT(*) FROM ... WHERE .... SELECT ... FROM ... WHERE LIMIT ... 如果使用SQL_CALC ...
- Mysql unix_timestamp() FROM_UNIXTIME和DATE_FORMAT(date,format)
mysql 中:UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date) 若无参数调用,则返回一个 Unix timestamp ('1970-01-01 00:00:00' GM ...
- 流风ASP.NET框架商业版-工作流1.0简介
流风ASP.NET框架商业版-工作流1.0简介 工作流简介 在流风ASP.NET框架商业版1.0推出后,就有集成工作流的想法,但是由于工作繁忙和其他事情的耽搁,时隔半年之久工作流1.0的版本才姗姗来迟 ...
- cf494A Treasure
A. Treasure time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...
- javaweb 登录注册
1:用户登录界面 login.jsp <%@ page language="java" import="java.util.*" pageEncoding ...
- poj1011 Sticks(dfs+剪枝)
Sticks Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 110416 Accepted: 25331 Descrip ...