pull/1191/head
gedoor 4 years ago
parent 0f7e43985b
commit 884585065a
  1. 29
      app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt

@ -337,20 +337,25 @@ class AnalyzeRule(val ruleData: RuleDataInterface) : JsExtensions {
* 正则替换 * 正则替换
*/ */
private fun replaceRegex(result: String, rule: SourceRule): String { private fun replaceRegex(result: String, rule: SourceRule): String {
if (rule.replaceRegex.isEmpty()) return result
var vResult = result var vResult = result
if (rule.replaceRegex.isNotEmpty()) { vResult = if (rule.replaceFirst) {
vResult = if (rule.replaceFirst) { kotlin.runCatching {
kotlin.runCatching { val pattern = Pattern.compile(rule.replaceRegex)
vResult.replaceFirst(rule.replaceRegex.toRegex(), rule.replacement) val matcher = pattern.matcher(vResult)
}.getOrElse { if (matcher.find()) {
vResult.replaceFirst(rule.replaceRegex, rule.replacement) matcher.group(0)!!.replaceFirst(rule.replaceRegex.toRegex(), rule.replacement)
} } else {
} else { ""
kotlin.runCatching {
vResult.replace(rule.replaceRegex.toRegex(), rule.replacement)
}.getOrElse {
vResult.replace(rule.replaceRegex, rule.replacement)
} }
}.getOrElse {
vResult.replaceFirst(rule.replaceRegex, rule.replacement)
}
} else {
kotlin.runCatching {
vResult.replace(rule.replaceRegex.toRegex(), rule.replacement)
}.getOrElse {
vResult.replace(rule.replaceRegex, rule.replacement)
} }
} }
return vResult return vResult

Loading…
Cancel
Save