Scala正则表达式语法以及应用大全

众所周知,在程序开发中,难免会遇到需要匹配、查找、替换、判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力。因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段。

正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

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

Scala 通过 scala.util.matching 包中的 Regex 类来支持正则表达式。

使用“.r” 方法可使任意字符串变成一个Regex实例

举些一般常用的正则表达式规则:

^

匹配输入字符串开始的位置。

$

匹配输入字符串结尾的位置

.

匹配任意一个字符

[ ]
匹配字符集,匹配括号包含的任一字符一次

[Rr]uby
匹配 "Ruby""ruby"
[…-…]

匹配括号内指定范围的字符集, - 表示区间内的任意一个字符或数字

[0-9] 
匹配任何数字,类似 [0123456789]

[a-z]
匹配任何 ASCII 小写字母

[A-Z]
匹配任何 ASCII 大写字母

[a-zA-Z0-9]
匹配数字,大小写字母
[^]

匹配字符集,匹配括号内不包含的任一字符

[^abc]
匹配"plain""p""l""i""n"

[^abcde]
匹配除了 abcde 其他字符
\A

匹配输入字符串开始的位置

\z

字符串结尾(类似$,但不受处理多行选项的影响)

\Z

字符串结尾或行尾(类似$,但不受处理多行选项的影响)

*

表示匹配该符号前面的字符出现0次、1次或多次

abcde*
匹配 "abcd" 加上 01个或多个的 e。
+

表示匹配该符号前面的字符出现1次或多次

abcde+
匹配 "abcde" 或加多个的 e。
?

表示匹配该符号前面的字符出现0次或1次

abcde?
匹配 "abcd""abcde"
{n}

匹配符号前面的字符出现次数由括号内的数字n定义

abcde{
   3}
匹配"abcdeee"3个e
{n,m}

匹配符号前面的字符出现n~m次

 
 

你可能感兴趣的:(scala)