Kotlin學習筆記(五十八)正規表示式

weixin_34075551發表於2017-07-18

JavaRegex.java(Java中的正規表示式)

public class JavaRegex {
    public static void main(String[] args) {
        String source = "Hello,This is my phone number:010-12345678."; //原文字
        //正則式,在(三位數-八位數)的格式前後可以有任意文字
        String pattern = ".*(\\d{3}-\\d{8}).*";
        //用正則式匹配文字獲取匹配器
        Matcher matcher = Pattern.compile(pattern).matcher(source);

        while (matcher.find()) { //匹配器進行匹配
            System.out.println(matcher.group()); //列印元文字資訊
            System.out.println(matcher.group(1)); //列印匹配到的資訊
        }
    }
}
5077812-f904cf4b0dcd7817.jpg
JavaRegex.java執行結果

</br>

KotlinUserJavaRegex.kt(在Kotlin中呼叫java的正規表示式)

fun main(args: Array<String>) {
    val source = "Hello,This is my phone number:010-12345678." //原文字
    //正則式,在(三位數-八位數)的格式前後可以有任意文字
    val pattern = """.*(\d{3}-\d{8}).*"""
    //用正則式匹配文字獲取匹配器
    val matcher = Pattern.compile(pattern).matcher(source)

    while (matcher.find()) { //匹配器進行匹配
        println(matcher.group()) //列印元文字資訊
        println(matcher.group(1)) //列印匹配到的資訊
    }
}
5077812-688d47be3d9aac3b.jpg
KotlinUserJavaRegex.kt執行結果

</br>

KotlinRegex.kt(使用Kotlin中的正規表示式)

fun main(args: Array<String>) {
    val source = "Hello,This is my phone number:010-12345678." //原文字
    val pattern = """.*(\d{3}-\d{8}).*""" //正則式

    //使用kotlin方法列印出匹配出的內容
    Regex(pattern).findAll(source).toList().flatMap(MatchResult::groupValues).forEach(::println)
}
5077812-b798e93da5f957d8.jpg
KotlinRegex.kt執行結果

相關文章