pull/32/head
kunfei 6 years ago
parent 3052c467b9
commit d2c7656e48
  1. 20
      app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeByRegex.kt

@ -2,12 +2,10 @@ package io.legado.app.model.analyzeRule
import java.util.* import java.util.*
import java.util.regex.Pattern import java.util.regex.Pattern
import kotlin.collections.HashMap
import kotlin.collections.set
object AnalyzeByRegex { object AnalyzeByRegex {
fun getElement(res: String, regs: Array<String>, index: Int = 0): Map<String, String>? { fun getElement(res: String, regs: Array<String>, index: Int = 0): List<String>? {
var vIndex = index var vIndex = index
val resM = Pattern.compile(regs[vIndex]).matcher(res) val resM = Pattern.compile(regs[vIndex]).matcher(res)
if (!resM.find()) { if (!resM.find()) {
@ -16,9 +14,9 @@ object AnalyzeByRegex {
// 判断索引的规则是最后一个规则 // 判断索引的规则是最后一个规则
return if (vIndex + 1 == regs.size) { return if (vIndex + 1 == regs.size) {
// 新建容器 // 新建容器
val info = HashMap<String, String>() val info = arrayListOf<String>()
for (groupIndex in 1 until resM.groupCount()) { for (groupIndex in 0 until resM.groupCount()) {
info["$$groupIndex"] = resM.group(groupIndex) info.add(resM.group(groupIndex))
} }
info info
} else { } else {
@ -30,7 +28,7 @@ object AnalyzeByRegex {
} }
} }
fun getElements(res: String, regs: Array<String>, index: Int = 0): List<Map<String, String>> { fun getElements(res: String, regs: Array<String>, index: Int = 0): List<List<String>> {
var vIndex = index var vIndex = index
val resM = Pattern.compile(regs[vIndex]).matcher(res) val resM = Pattern.compile(regs[vIndex]).matcher(res)
if (!resM.find()) { if (!resM.find()) {
@ -39,13 +37,13 @@ object AnalyzeByRegex {
// 判断索引的规则是最后一个规则 // 判断索引的规则是最后一个规则
if (vIndex + 1 == regs.size) { if (vIndex + 1 == regs.size) {
// 创建书息缓存数组 // 创建书息缓存数组
val books = ArrayList<Map<String, String>>() val books = ArrayList<List<String>>()
// 提取列表 // 提取列表
do { do {
// 新建容器 // 新建容器
val info = HashMap<String, String>() val info = arrayListOf<String>()
for (groupIndex in 1 until resM.groupCount()) { for (groupIndex in 0 until resM.groupCount()) {
info["$$groupIndex"] = resM.group(groupIndex) info.add(resM.group(groupIndex))
} }
books.add(info) books.add(info)
} while (resM.find()) } while (resM.find())

Loading…
Cancel
Save