From 524e9b89a45544d52ea721f620ee58d4fc601cff Mon Sep 17 00:00:00 2001 From: Horis <8674809+821938089@users.noreply.github.com> Date: Fri, 6 Sep 2024 09:49:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/io/legado/app/utils/RegexExtensions.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/io/legado/app/utils/RegexExtensions.kt b/app/src/main/java/io/legado/app/utils/RegexExtensions.kt index c345292a4..b379c62f7 100644 --- a/app/src/main/java/io/legado/app/utils/RegexExtensions.kt +++ b/app/src/main/java/io/legado/app/utils/RegexExtensions.kt @@ -10,6 +10,7 @@ import kotlinx.coroutines.Dispatchers.IO import kotlinx.coroutines.runBlocking import kotlinx.coroutines.suspendCancellableCoroutine import splitties.init.appCtx +import java.util.regex.Matcher import kotlin.coroutines.resume import kotlin.coroutines.resumeWithException @@ -36,7 +37,8 @@ fun CharSequence.replace(regex: Regex, replacement: String, timeout: Long): Stri bindings["result"] = matcher.group() eval(replacement1, bindings) }.toString() - matcher.appendReplacement(stringBuffer, jsResult) + val quotedResult = Matcher.quoteReplacement(jsResult) + matcher.appendReplacement(stringBuffer, quotedResult) } else { matcher.appendReplacement(stringBuffer, replacement1) } @@ -49,7 +51,8 @@ fun CharSequence.replace(regex: Regex, replacement: String, timeout: Long): Stri } handler.postDelayed(timeout) { if (coroutine.isActive) { - val timeoutMsg = "替换超时,3秒后还未结束将重启应用\n替换规则$regex\n替换内容:${this}" + val timeoutMsg = + "替换超时,3秒后还未结束将重启应用\n替换规则$regex\n替换内容:$charSequence" val exception = RegexTimeoutException(timeoutMsg) block.cancel(exception) appCtx.longToastOnUi(timeoutMsg)