麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > regex > 正文

詳解Java中的scala正則表達(dá)式

2020-01-20 21:34:31
字體:
供稿:網(wǎng)友

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

eg:使用正則表達(dá)式查找單詞 Scala

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

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

 

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

正則表達(dá)式

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

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

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

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

表達(dá)式 匹配規(guī)則

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

正則表達(dá)式實(shí)例

 實(shí)例 描述
. 匹配除"/r/n"之外的任何單個字符。
[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 匹配空格,類似: [ /t/r/n/f]
//S 匹配非空格,類似: [^ /t/r/n/f]
//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} 剛好匹配 3 個數(shù)字。
//d{3,} 匹配 3 個或多個數(shù)字。
//d{3,5} 匹配 3 個、4 個或 5 個數(shù)字。
//D//d+ 無分組: + 重復(fù) /d
(//D//d)+/ 分組: + 重復(fù) /D/d 對
([Rr]uby(, )?)+ 匹配 "Ruby"、"Ruby, ruby, ruby",等等
---------------------

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

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

eg:

總結(jié)

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 午夜视频啊啊啊 | 日本a在线观看 | 在线播放黄色片 | 中国美女一级黄色大片 | 动漫孕妇被羞羞视频 | 国产一级毛片国语版 | 欧美性激情视频 | 成人福利在线 | 毛片在线免费观看视频 | 伊人一二三四区 | 高清av在线| 欧美在线观看视频网站 | 视频一区二区在线观看 | 国产中文av在线 | 成年人视频在线免费观看 | 国产1区2 | 日日鲁夜夜视频热线播放 | 中国fx性欧美xxxx | 国产精品一区2区3区 | 成人毛片100免费观看 | av不卡免费在线 | 国产无限资源在线观看 | 超碰97最新| 久久久青青草 | 羞羞网站| 免费在线观看国产精品 | 精品国产一区在线观看 | av电影在线网站 | 99999久久久久久 | av在线收看 | 亚洲影视在线 | 久草热久 | 99视频在线观看视频 | 国产精品久久久久永久免费 | 中午字幕无线码一区2020 | 国产精品伊人久久 | 污污黄 | 九九热视频这里只有精品 | 中文字幕观看 | av在线免费看片 | 成人午夜视频免费看 |