溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Kotlin語言編程Regex正則表達(dá)式怎么使用

發(fā)布時(shí)間:2022-08-30 10:05:07 來源:億速云 閱讀:154 作者:iii 欄目:開發(fā)技術(shù)

這篇“Kotlin語言編程Regex正則表達(dá)式怎么使用”文章的知識點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Kotlin語言編程Regex正則表達(dá)式怎么使用”文章吧。

    前言

    回想一下,在學(xué)Java時(shí)接觸的正則表達(dá)式,其實(shí)Kotlin中也是類似。只不過使用Kotlin 的語法來表達(dá),更為簡潔。正則(Regex)用于搜索字符串或替換正則表達(dá)式對象,需要使用Regex(pattern:String)類。 在Kotlin中 Regex 是在 kotlin.text.regex 包。

    Regex 構(gòu)造函數(shù)

    構(gòu)造函數(shù)描述
    Regex(pattern: String)給定的字符串模式創(chuàng)建正則式。
    Regex(pattern: String, option: RegexOption)給定的字符串模式創(chuàng)建一個(gè)正則式并給出單個(gè)選項(xiàng)
    Regex(pattern: String, options: Set<RegexOption>)給定的字符串模式和給定選項(xiàng)集創(chuàng)建正則表達(dá)式

    常用正則表達(dá)方法

    方法描述
    fun containsMatchIn(input: CharSequence): Boolean包含至少一個(gè)輸入字符
    fun find(input: CharSequence, startIndex: Int = 0): MatchResult?返回輸入字符序列中正則表達(dá)式的第一個(gè)匹配項(xiàng),從給定的startIndex開始
    fun findAll(input: CharSequence, startIndex: Int = 0): Sequence<MatchResult>返回輸入字符串中所有出現(xiàn)的正則表達(dá)式,從給定的startIndex開始
    fun matchEntire(input: CharSequence): MatchResult?用于匹配模式中的完整輸入字符
    fun matches(input: CharSequence): Boolean輸入字符序列是否與正則表達(dá)式匹配
    fun replace(input: CharSequence, replacement: String): String用給定的替換字符串替換正則表達(dá)式的所有輸入字符序列

    示例展示

    這里通過調(diào)用幾個(gè)常見正則函數(shù)進(jìn)行幾組數(shù)據(jù)查找,展示常用正則表達(dá)式用法:

    1.containsMatchIn(input: CharSequence) 包含指定字符串

    使用場景:判定是否包含某個(gè)字符串

    val regex = Regex(pattern = "Kot")
    val matched = regex.containsMatchIn(input = "Kotlin")
    運(yùn)行結(jié)果:
    matched = true

    2.matches(input: CharSequence) 匹配字符串

    使用場景:匹配目標(biāo)字符串

    val regex = """a([bc]+)d?""".toRegex()
    val matched1 = regex.matches(input = "xabcdy")
    val matched2 = regex.matches(input = "abcd")
    運(yùn)行結(jié)果:
    matched1 = false
    matched2 = true

    3.find(input: CharSequence, startIndex: Int = 0) 查找字符串,并返回第一次出現(xiàn)

    使用場景:返回首次出現(xiàn)指定字符串

    val phoneNumber :String? = Regex(pattern = """\d{3}-\d{3}-\d{4}""")
    .find("phone: 123-456-7890, e..")?.value
    結(jié)果打印:
    123-456-7890

    4.findAll(input: CharSequence, startIndex: Int = 0) 查找字符串,返回所有出現(xiàn)的次數(shù)

    使用場景:返回所有情況出現(xiàn)目標(biāo)字符串

    val foundResults = Regex("""\d+""").findAll("ab12cd34ef 56gh7 8i")
    val result = StringBuilder()
    for (text in foundResults) {
        result.append(text.value + " ")
    }
    運(yùn)行結(jié)果:
    12 34 56 7 8

    5.replace(input: CharSequence, replacement: String) 替換字符串

    使用場景:將指定某個(gè)字符串替換成目標(biāo)字符串

    val replaceWith = Regex("beautiful")
    val resultString = replaceWith.replace("this picture is beautiful","awesome")
    運(yùn)行結(jié)果:
    this picture is awesome

    以上就是關(guān)于“Kotlin語言編程Regex正則表達(dá)式怎么使用”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI