日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java正则匹配英文句号_Scala 正则表达式 0411

發布時間:2024/7/23 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java正则匹配英文句号_Scala 正则表达式 0411 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Scala 正則表達式

Scala 通過 scala.util.matching 包中的 Regex 類來支持正則表達式。以下實例演示了使用正則表達式查找單詞 Scala :

import scala.util.matching.Regexobject Test {def main(args: Array[String]) {val pattern = "Scala".rval str = "Scala is Scalable and cool"println(pattern findFirstIn str)} }

執行以上代碼,輸出結果為:

$ scalac Test.scala $ scala Test Some(Scala)

實例中使用 String 類的 r() 方法構造了一個Regex對象。

然后使用 findFirstIn 方法找到首個匹配項。

如果需要查看所有的匹配項可以使用 findAllIn 方法。

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

import scala.util.matching.Regexobject Test {def main(args: Array[String]) {val pattern = new Regex("(S|s)cala") // 首字母可以是大寫 S 或小寫 sval str = "Scala is scalable and cool"println((pattern findAllIn str).mkString(",")) // 使用逗號 , 連接返回結果} }

執行以上代碼,輸出結果為:

$ scalac Test.scala $ scala Test Scala,scala

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

object Test {def main(args: Array[String]) {val pattern = "(S|s)cala".rval str = "Scala is scalable and cool"println(pattern replaceFirstIn(str, "Java"))} }

執行以上代碼,輸出結果為:

$ scalac Test.scala $ scala Test Java is scalable and cool

正則表達式

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

下表我們給出了常用的一些正則表達式規則:

表達式匹配規則^匹配輸入字符串開始的位置。$匹配輸入字符串結尾的位置。.匹配除"rn"之外的任何單個字符。[...]字符集。匹配包含的任一字符。例如,"[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)匹配 re,不捕獲匹配的文本,也不給此分組分配組號(?> re)貪婪子表達式w匹配字母或數字或下劃線或漢字W匹配任意不是字母,數字,下劃線,漢字的字符s匹配任意的空白符,相等于 [tnrf]S匹配任意不是空白符的字符d匹配數字,類似 [0-9]D匹配任意非數字的字符G當前搜索的開頭n換行符b通常是單詞分界位置,但如果在字符類里使用代表退格B匹配不是單詞開頭或結束的位置t制表符Q開始引號:Q(a+b)*3E可匹配文本 "(a+b)*3"。E結束引號:Q(a+b)*3E可匹配文本 "(a+b)*3"。

正則表達式實例

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

注意上表中的每個字符使用了兩個反斜線。這是因為在 Java 和 Scala 中字符串中的反斜線是轉義字符。所以如果你要輸出 ..,你需要在字符串中寫成 .. 來獲取一個反斜線。查看以下實例:

import scala.util.matching.Regexobject Test {def main(args: Array[String]) {val pattern = new Regex("abl[ae]d+")val str = "ablaw is able1 and cool"println((pattern findAllIn str).mkString(","))} }

執行以上代碼,輸出結果為:

$ scalac Test.scala $ scala Test able1

總結

以上是生活随笔為你收集整理的java正则匹配英文句号_Scala 正则表达式 0411的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。