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

Posted 我的空中楼阁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 }

 

以上是关于scala和正则表达式常用基础知识示例的主要内容,如果未能解决你的问题,请参考以下文章

Scala之option类型及偏函数使用异常处理正则表达式

2021年大数据常用语言Scala:基础语法学习 字符串

实用代码小知识| PHP常用正则表达式汇总

scala正则表达式

Scala的文件读写操作与正则表达式

快速学习正则表达式,不用死记硬背,示例让你通透(下篇)