scala和正则表达式常用基础知识示例

http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html

.     匹配除换行符以外的任意字符
\w     匹配字母或数字或下划线或汉字
\s     匹配任意的空白符
\d     匹配数字
\b     匹配单词的开始或结束
^     匹配字符串的开始
$     匹配字符串的结束
在[]里面不需要转义,在外面,如().?之类的字符是需要转义的.
后向引用示例:
\b(\w+)\b\s+\1\b可以用来匹配重复的单词,像go go, 或者kitty kitty。
正则表达式需求:
示例:there are 3 threads hung three minutes lasted.
获取:3
表5.懒惰限定符 代码/语法    说明
*?     重复任意次,但尽可能少重复
+?     重复1次或更多次,但尽可能少重复
??     重复0次或1次,但尽可能少重复
{n,m}?     重复n到m次,但尽可能少重复
{n,}?     重复n次以上,但尽可能少重复
a.*?b匹配最短的,以a开始,以b结束的字符串

表4.常用分组语法 分类    代码/语法    说明
捕获     (exp)        匹配exp,并捕获文本到自动命名的组里
(?<name>exp)     匹配exp,并捕获文本到名称为name的组里,也可以写成(?‘name‘exp)
(?:exp)               匹配exp,不捕获匹配的文本,也不给此分组分配组号
零宽断言 (?=exp)  匹配exp前面的位置
(?<=exp)            匹配exp后面的位置
(?!exp)               匹配后面跟的不是exp的位置
(?<!exp)             匹配前面不是exp的位置
\b\w+(?=ing\b),匹配以ing结尾的单词的前面部分(除了ing以外的部分),如查找I‘m singing while you‘re dancing.时,它会匹配sing和danc。
(?<=\bre)\w+\b会匹配以re开头的单词的后半部分(除了re以外的部分),例如在查找reading a book时,它匹配ading。

val regex = """\b\d+(?=\s+(threads|thread)\b)""".r
println(regex.findFirstIn("there are 23 threads in workers, please check"))
println(regex.findFirstIn("there are 1 thread in workers, please check"))
val regex2 = """\b\w+(?=ing\b)""".r
regex2.findAllIn("I‘m singing while you‘re dancing").foreach { println }
时间: 2024-10-20 11:00:32

scala和正则表达式常用基础知识示例的相关文章

R语言常用基础知识

seq(from = 1, to = 1, by = ((to - from)/(length.out - 1)),    length.out = NULL, along.with = NULL, ...) 举例----------Examples----------seq(0, 1, length.out=11) seq(stats::rnorm(20)) #  seq(1, 9, by = 2)     #  seq(1, 9, by = pi)    #  seq(1, 6, by =

SpringMVC常用基础知识

常用注解元素 @Controller 标注在Bean的类定义处 @RequestMapping 真正让Bean具备 Spring MVC Controller 功能的是 @RequestMapping 这个注解 @RequestMapping 可以标注在类定义处,将 Controller 和特定请求关联起来: 还可以标注在方法签名处,以便进一步对请求进行分流 配套的属性有: value 需要跳转的地址 method 基于RestFul的跳转参数,有RequestMethod.get post p

正则表达式的基础知识

概念: 正则表达式使用单个字符串来描述.匹配一系列符合某个 句法规则的字符串. 使用场景: 在很多文本编辑器里,正则表达式通常被用来检索.替换 那些符合某个模式的文本. tip 1.处理正则表达式的工具会提供一个忽略大小写的选项, 2.只使用一个正则表达式,可能不能准确的第筛选,这时,可以采用分支结构,但是分支结构使用过程中,也要注意各个表达式的先后顺序: 3.但是正则表达式中并不提供关于数学的任何功能,所以只能使用冗长的分组,选择,字符类来描述一个正确的IP地址:((2[0-4]\d|25[0

GISer常用基础知识清单

有一些基础性的知识是工作中常用的,很多都是最基础的概念性的东西,好像都是和坐标相关的. 有一些公式常用但总记不住,有一些概念没法不能牢记和说清,所有总结一下. 这篇随笔先列个表,列举下知识点的名字(后续想到了.遇到了会更新). GIS知识分类 我认为GIS知识分3类: G--测绘.平差.地图学基础--测绘方面 I--数据库.开发--IS方面 S--GIS原理 其中GIS原理会与前面的测绘和IS知识有重合部分,不如说GIS原理就是在介绍前二者是如何结合起来的 GIS原理会以一种观点把测绘知识和IS

网络常用基础知识大全

1)如何查看本机所开端口:用netstat -a -n命令查看!netstat结果显示有一些英文,简单说一下这些英文具体都代表什么:LISTEN:侦听来自远方的TCP端口的连接请求SYN-SENT:再发送连接请求后等待匹配的连接请求SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认ESTABLISHED:代表一个打开的连接FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认FIN-WAIT-2:从远程TCP等待连接中断请求CLOSE-WAIT:等

(转)SpringMVC常用基础知识

源地址:http://blog.sina.com.cn/s/blog_a43be7b001011lx9.html 常用注解元素 @Controller 标注在Bean的类定义处 @RequestMapping 真正让Bean具备 Spring MVC Controller 功能的是 @RequestMapping 这个注解 @RequestMapping 可以标注在类定义处,将 Controller 和特定请求关联起来: 还可以标注在方法签名处,以便进一步对请求进行分流 配套的属性有: valu

git常用基础知识

常用操作 查看状态 git status 添加变化文件 git add -A 提交到暂存区 git commit -m "fwadmin" push 到远端仓库 git push origin 引用 git 教程 原文地址:http://blog.51cto.com/shower/2166278

java常用基础知识回忆1

1.java标识符以字母,下划线_,美元符号$开头,后面可以是任何字母.数字.美元符号或下划线.Java 中标识符是为方法.变量或其他用户定义项所定义的名称,不能是关键字. 2.泛型的创建是为了编译器检查出错误,只在编译阶段被处理成了普通类和方法,在运行阶段会被擦除,在处理泛型类型时,会有一个原始类型被自动提供,原始类型的名字就是擦除类型参数的泛型类型的名字.(如果没有jvm会默认为object类型) 3.CallableStatement继承自PreparedSatement,Prepared

JavaScript 常用基础知识

1.数据类型: 1)原始类型: String Boolean Number Null Undefiend 2)引用类型:Object .......... 总结:为什么老生常谈数据类型呢?在开发中他们到底数据类型有什么指引,我从不纠结Null到底是Object类型还是Undefiend类型,没意义的东西不需要花费时间.但是,这里他告诉我们的是:原始类型永远是对象的拷贝,传值不传址:然而,引用类型则传的是引用,改变一个对象的引用会影响对象本身!所以,一定要记住5大原始数据类型. /** 原始类型操