站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

詳解Java中的scala正則表達式

Scala 通過 scala.util.matching 包中的 Regex 類來支持正則表達式。

eg:使用正則表達式查找單詞 Scala

詳解Java中的scala正則表達式

實例中使用 String 類的 r() 方法構(gòu)造了一個Regex對象。(也可直接new一個Regex對象實例)然后使用 findFirstIn 方法找到首個匹配項。如果需要查看所有的匹配項可以使用 findAllIn 方法

可以使用 mkString( ) 方法來連接正則表達式匹配結(jié)果的字符串,并可以使用管道(|)來設(shè)置不同的模式

 詳解Java中的scala正則表達式

如果需要將匹配的文本替換為指定的關(guān)鍵詞,可以使用 replaceFirstIn( ) 方法來替換第一個匹配項,使用 replaceAllIn( ) 方法替換所有匹配項

詳解Java中的scala正則表達式

正則表達式

Scala 的正則表達式繼承了 Java 的語法規(guī)則,Java 則大部分使用了 Perl 語言的規(guī)則。

下表給出了常用的一些正則表達式規(guī)則:

 Java 的語法規(guī)則,Java 則大部分使用了 Perl 語言的規(guī)則。

下表給出了常用的一些正則表達式規(guī)則:

表達式 匹配規(guī)則

^ 匹配輸入字符串開始的位置。
$ 匹配輸入字符串結(jié)尾的位置。
. 匹配除”rn”之外的任何單個字符。
[…] 字符集。匹配包含的任一字符。例如,”[abc]”匹配”plain”中的”a”。
[^…] 反向字符集。匹配未包含的任何字符。例如,”[^abc]”匹配”plain”中”p”,”l”,”i”,”n”。
\A 匹配輸入字符串開始的位置(無多行支持)
\z 字符串結(jié)尾(類似$,但不受處理多行選項的影響)
\Z 字符串結(jié)尾或行尾(不受處理多行選項的影響)
re* 重復零次或更多次
re+ 重復一次或更多次
re? 重復零次或一次
re{ n} 重復n次
re{ n,}
re{ n, m} 重復n到m次
a|b 匹配 a 或者 b
(re) 匹配 re,并捕獲文本到自動命名的組里
(?: re) 匹配 re,不捕獲匹配的文本,也不給此分組分配組號
(?> re) 貪婪子表達式
\w 匹配字母或數(shù)字或下劃線或漢字
\W 匹配任意不是字母,數(shù)字,下劃線,漢字的字符
\s 匹配任意的空白符,相等于 [tnrf]
\S 匹配任意不是空白符的字符
\d 匹配數(shù)字,類似 [0-9]
\D 匹配任意非數(shù)字的字符
\G 當前搜索的開頭
\n 換行符
\b 通常是單詞分界位置,但如果在字符類里使用代表退格
\B 匹配不是單詞開頭或結(jié)束的位置
\t 制表符
\Q 開始引號:Q(a+b)*3E 可匹配文本 “(a+b)*3″。
\E 結(jié)束引號:Q(a+b)*3E 可匹配文本 “(a+b)*3″。

正則表達式實例

 實例 描述
. 匹配除”rn”之外的任何單個字符。
[Rr]uby 匹配 “Ruby” 或 “ruby”
rub[ye] 匹配 “ruby” 或 “rube”
[aeiou] 匹配小寫字母 :aeiou
[0-9] 匹配任何數(shù)字,類似 [0123456789]
[a-z] 匹配任何 ASCII 小寫字母
[A-Z] 匹配任何 ASCII 大寫字母
[a-zA-Z0-9] 匹配數(shù)字,大小寫字母
[^aeiou] 匹配除了 aeiou 其他字符
[^0-9] 匹配除了數(shù)字的其他字符
\d 匹配數(shù)字,類似: [0-9]
\D 匹配非數(shù)字,類似: [^0-9]
\s 匹配空格,類似: [ trnf]
\S 匹配非空格,類似: [^ trnf]
\w 匹配字母,數(shù)字,下劃線,類似: [A-Za-z0-9_]
\W 匹配非字母,數(shù)字,下劃線,類似: [^A-Za-z0-9_]
ruby? 匹配 “rub” 或 “ruby”: y 是可選的
ruby* 匹配 “rub” 加上 0 個或多個的 y。
ruby+ 匹配 “rub” 加上 1 個或多個的 y。
\d{3,5} 匹配 3 個、4 個或 5 個數(shù)字。
\D\d)+/ 分組: + 重復 Dd 對
([Rr]uby(, )?)+ 匹配 “Ruby”、”Ruby, ruby, ruby”,等等
———————

參照:http://www.runoob.com/scala/scala-regular-expressions.html

注意:上表中的每個字符使用了兩個反斜線。這是因為在 Java 和 Scala 中字符串中的反斜線是轉(zhuǎn)義字符。所以若要輸出 ..,需要在字符串中寫成 .\. 來獲取一個反斜線。

eg:

詳解Java中的scala正則表達式

總結(jié)

以上所述是小編給大家介紹的Java中的scala正則表達式,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

贊(0)
分享到: 更多 (0)
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
日本精品3d动漫一区二区| 亚洲精品无码久久久久APP| 成人区精品一区二区不卡| 精品综合一区二区三区| 国产在线观看精品香蕉v区| 亚洲精品GV天堂无码男同| 国产精品香蕉在线一区| 国产精品偷窥熟女精品视频| 亚洲精品无码久久久久APP | 久久精品国产一区二区三区日韩| 国产精品麻豆入口| 国产精品久久久久久久久久久不卡| 国内精品卡1卡2卡区别| 无码日韩人妻AV一区二区三区| 韩国精品一区视频在线播放| 在线精品一区二区三区| 91精品国产91| 亚洲精品综合在线影院| 国产精品福利电影| 国产精品青青在线麻豆| 国产 精品 自在 线| 久久久这里只有精品加勒比| 999久久久无码国产精品| 久久这里只精品99re66| 含羞草国产亚洲精品岁国产精品| 国产精品无码专区AV在线播放| 人妻熟妇乱又伦精品视频APP| 无码欧精品亚洲日韩一区| 久久精品国产精品亚洲精品| 狠狠色丁香婷婷综合精品视频| 亚洲精品无码Av人在线观看国产| 国产乱人伦偷精品视频AAA| 精品久久一区二区三区| 国产精品视频白浆免费视频| 这里只有精品视频在线| 黑猫福利精品第一视频| 亚洲国产精品碰碰| 日韩一区二区三区精品| 国产偷国产偷亚洲高清日韩| 日韩高清免费在线观看| 精品久久久无码中文字幕边打电话 |