Kotlin替换Regex,但保持大小写匹配

drnojrws  于 2023-02-13  发布在  Kotlin
关注(0)|答案(1)|浏览(143)

我有一个应用程序可以进行转录,我对转录服务中的预期错别字进行了几次替换,但在某些情况下,替换应该对预期错别字区分大小写,比如单词位于句子开头。例如:

fun replaceText (aText: String): String = aText.
   replace ("""\b[gG]onna\b""".toRegex(), "going to")

理想情况下,如果它找到“gonna”,它会将其替换为“going to”,如果它找到“Gonna”,它会将其替换为“Going to”
(“gonna”可能不会出现在句子的开头,而只是用它作为例子)
我知道我可以复制这个函数,用一个正则表达式检查小写,替换为小写,然后用另一个替换,检查大写,替换为大写,但是有没有办法用匹配的大小写来做这个替换呢?

nfs0ujit

nfs0ujit1#

您可以尝试使用分组首字母Gg,然后替换为匹配的组。

fun replaceText (aText: String): String = aText.
   replace ("""\b([gG])onna\b""".toRegex(), "$1oing to")

参见正则表达式演示here

相关问题