<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Scala 正則表達式 Scala 通過 scala.util.matching 包種的 **Regex** 類來支持正則表達式。以下實例演示了使用正則表達式查找單詞 **Scala** : ``` import scala.util.matching.Regex object Test { def main(args: Array[String]) { val pattern = "Scala".r val 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.Regex object Test { def main(args: Array[String]) { val pattern = new Regex("(S|s)cala") // 首字母可以是大寫 S 或小寫 s val 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".r val 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 語言的規則。 下表我們給出了常用的一些正則表達式規則: | 表達式 | 匹配規則 | | --- | --- | | ^ | 匹配輸入字符串開始的位置。 | | $ | 匹配輸入字符串結尾的位置。 | | . | 匹配除"\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&#124;b | 匹配 a 或者 b | | (re) | 匹配 re,并捕獲文本到自動命名的組里 | | (?: re) | 匹配 re,不捕獲匹配的文本,也不給此分組分配組號 | | (?&gt; re) | 貪婪子表達式 | | \\w | 匹配字母或數字或下劃線或漢字 | | \\W | 匹配任意不是字母,數字,下劃線,漢字的字符 | | \\s | 匹配任意的空白符,相等于 \[\t\n\r\f\] | | \\S | 匹配任意不是空白符的字符 | | \\d | 匹配數字,類似 \[0-9\] | | \\D | 匹配任意非數字的字符 | | \\G | 當前搜索的開頭 | | \\n | 換行符 | | \\b | 通常是單詞分界位置,但如果在字符類里使用代表退格 | | \\B | 匹配不是單詞開頭或結束的位置 | | \\t | 制表符 | | \\Q | 開始引號:**\Q(a+b)*3\E** 可匹配文本 "(a+b)*3"。 | | \\E | 結束引號:**\Q(a+b)*3\E** 可匹配文本 "(a+b)*3"。 | ## 正則表達式實例 | 實例 | 描述 | | --- | --- | | . | 匹配除"\r\n"之外的任何單個字符。 | | \[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 | 匹配空格,類似: \[ \t\r\n\f\] | | \\S | 匹配非空格,類似: \[^ \t\r\n\f\] | | \\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 個數字。 | | \\D\\d+ | 無分組: + 重復 \d | | (\\D\\d)+/ | 分組: + 重復 \D\d 對 | | (\[Rr\]uby(, )?)+ | 匹配 "Ruby"、"Ruby, ruby, ruby",等等 | 注意上表中的每個字符使用了兩個反斜線。這是因為在 Java 和 Scala 中字符串中的反斜線是轉義字符。所以如果你要輸出 .\.,你需要在字符串中寫成 .\\. 來獲取一個反斜線。查看以下實例: ``` import scala.util.matching.Regex object 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 ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看