114 Scala程式設計高階之正規表示式支援

2021-09-10 02:33:16 字數 893 閱讀 6695

一種語法,用乙個表示式,來匹配一系列的字串

[a-z]+: 乙個或多個a~z範圍的26個小寫英文本母,比如hello,world

定義乙個正規表示式,使用string類的r方法

此時返回的型別是scala.util.matching.regex類的物件

val pattern1 = "[a-z]+".r
拿到乙個正規表示式以後,我們一般會用它來做什麼事情?

比如,我們會用正規表示式來匹配一些字串,比如來看看,某個字串是否符合表示式規定的範圍之內

比如,從乙個長的字串中,提取出來,匹配正規表示式的各個部分

val str = "hello 123 world 456"
獲取乙個字串中,匹配正規表示式的部分,使用findallin,會獲取到乙個iterator,迭代器

然後就可以去遍歷各個匹配正則的部分,去進行處理

for (matchstring <- pattern1.findallin(str)) println(matchstring)
同理,使用findfirstin,可以獲取第乙個匹配正規表示式的部分

pattern1.findfirstin(str)
使用replaceallin,可以將匹配正則的部分,替換掉

pattern1.replacefirstin("hello world", "replacement")
使用replacefirstin,可以將第乙個匹配正則的部分,替換掉

pattern1.replaceallin("hello world", "replacement")

Scala之函式式程式設計高階

給你乙個集合 val list list 1,2,3,4,abc 請完成如下要求 將集合 list 中的所有數字 1,並返回乙個新的集合 要求忽略掉 非數字 的元素,即返回的 新的集合 形式為 2,3,4,5 object partialfundemo01 模式匹配 def addone2 i an...

Scala高階之App特質

delayedinit特質裡定義了延遲初始化方法 def delayedinit x unit unit 然後編譯器會把這段初始化 塊裡的邏輯封裝成乙個函式物件 是 unit 型別 override def delayedinit body unit 快取起來 並沒有執行 然後放到乙個集合 list...

scala之混入 高階函式

當某個特質被用於組合類時,被稱為混入。這是乙個抽象類 abstract class a 這是乙個類,實現了抽象類a class b extends a 這是乙個特質,居然還可以繼承自乙個抽象類 trait c extends a 乙個類實現乙個介面使用extends 如果這個類有父類 使用exten...