在 Kotlin 中,可以使用 Regex 类来进行正则表达式匹配。下面是一个示例代码,演示如何在长字符串 C 中找出所有符合 AxB 模式的字符串组合,并返回其起始和终点位置。

fun findAxBPositions(C: String, A: String, B: String): List<Pair<Int, Int>> {
    val regex = Regex("$A$x$B")
    val positions = mutableListOf<Pair<Int, Int>>()
    val matchResults = regex.findAll(C)
    
    for (matchResult in matchResults) {
        val startIndex = matchResult.range.first
        val endIndex = matchResult.range.last
        positions.add(Pair(startIndex, endIndex))
    }
    
    return positions
}

fun main() {
    val C = "ABCDEFABCXDEFAABCY"
    val A = "ABC"
    val B = "DEF"
    
    val positions = findAxBPositions(C, A, B)
    
    for (position in positions) {
        println("起始位置: ${position.first}, 终点位置: ${position.second}")
    }
}

上述代码中,findAxBPositions 函数接受三个参数:长字符串 C,字符串 A 和字符串 B。函数首先使用正则表达式 "$A$x$B" 创建一个 Regex 对象,其中 $A$B 是字符串 A 和 B 的占位符。然后,使用 findAll 方法在长字符串 C 中查找所有匹配的 AxB。最后,将每个匹配的起始和终点位置存储在一个可变列表中,并返回该列表。

main 函数中,我们使用一个示例输入调用 findAxBPositions 函数,然后打印所有匹配的起始和终点位置。在上述示例中,输出将是:

起始位置: 0, 终点位置: 8
起始位置: 9, 终点位置: 17
Kotlin 正则表达式查找字符串组合:AxB

原文地址: https://www.cveoy.top/t/topic/p6MM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录