scala正则表达式怎么在Java中使用

scala正则表达式怎么在Java中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

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

eg:使用正则表达式查找单词 Scala

scala正则表达式怎么在Java中使用

实例中使用 String 类的 r() 方法构造了一个Regex对象。(也可直接new一个Regex对象实例)然后使用 findFirstIn 方法找到首个匹配项。如果需要查看所有的匹配项可以使用 findAllIn 方法

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

 scala正则表达式怎么在Java中使用

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

scala正则表达式怎么在Java中使用

正则表达式

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

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

 Java 的语法规则,Java 则大部分使用了 Perl 语言的规则。

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

表达式 匹配规则

^ 匹配输入字符串开始的位置。
$ 匹配输入字符串结尾的位置。
. 匹配除"\r\n"之外的任何单个字符。
[...] 字符集。匹配包含的任一字符。例如,"[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),匹配,不捕获匹配的文本,也不给此分组分配组号
(比;重新),贪婪子表达式
\ \ w 匹配字母或数字或下划线或汉字
\ \ w 匹配任意不是字母,数字,下划线,汉字的字符
\ \ s 匹配任意的空白符,相等于[f \ t \ n \ r \]
\ \ s 匹配任意不是空白符的字符
\ \ d 匹配数字,类似[0 - 9]
\ \ d 匹配任意非数字的字符
\ \ G 当前搜索的开头
\ \ n 换行符
\ \ b 通常是单词分界位置,但如果在字符类里使用代表退格
\ \ b 匹配不是单词开头或结束的位置
\ \ t 制表符
\ \ Q 开始引号:\问(a + b) * 3 \ E可匹配文本“(a + b) * 3“。
\ \ E 结束引号:\问(a + b) * 3 \ E可匹配文本“(a + b) * 3“。

正则表达式实例

,实例,描述
只匹配除“\ r \ n"之外的任何单个字符。
(Rr) uby 匹配“Ruby"或“ruby"
摩擦(叶),匹配“ruby"或“rube"
(五个母音字母),匹配小写字母:五个母音字母
[0 - 9],匹配任何数字,类似[0123456789]
[a - z],匹配任何ASCII小写字母
[a - z],匹配任何ASCII大写字母
[a-zA-Z0-9],匹配数字,大小写字母
[^五个母音字母),匹配除了五个母音字母其他字符
[^ 0 - 9],匹配除了数字的其他字符
\ \ d 匹配数字,类似:[0 - 9]
\ \ d 匹配非数字,类似:[^ 0 - 9]
\ \ s 匹配空格,类似:[\ t \ r \ n \ f]
\ \ s 匹配非空格,类似:[^ \ t f \ r \ n \]
\ \ w 匹配字母,数字,下划线,类似:[A-Za-z0-9_]
\ \ w 匹配非字母,数字,下划线,类似:[^ A-Za-z0-9_]
ruby ?,匹配“rub"或“ruby": y是可选的
ruby *,匹配“rub"加上0个或多个的y。
ruby +,匹配“rub"加上一个或多个的y。
\ \ d{3},刚好匹配3个数字。
\ \ d{3},匹配3个或多个数字。
\ \ d{3、5},匹配3个,4个或5个数字。

scala正则表达式怎么在Java中使用