android - 正则表达式删除除句点外的所有特殊字符

标签 android regex kotlin

我需要帮助来创建一个删除所有特殊字符(包括逗号,但不包括句点)的正则表达式。我试图做的是转义所有我不想要的字符、符号和标点符号。它没有按预期工作。

replace("[-\\[\\]^/,'*:.!><~@#\$%+=?|\"\\\\()]+".toRegex(), "")

我删除了句点并对其进行了测试。它没有用。

replace("[-\\[\\]^/,'*:!><~@#\$%+=?|\"\\\\()]+".toRegex(), "")

例如,我们以字符串“如果 {cat.is} 戴着帽子,那么我吃绿鸡蛋和火腿!”为例。

我要结果

如果 {cat.is} 戴着帽子,那么我会吃绿鸡蛋和火腿(逗号和感叹号已删除)

注意:我想保留括号,虽然大括号可以省略。

有人对此有解决方案吗?

最佳答案

你可以使用

"""[\p{P}\p{S}&&[^.]]+""".toRegex()

[\p{P}\p{S}&&[^.]]+ 模式匹配一​​个或多个 (+) 标点符号 (\p{P}) 或符号 (\p{S}) 点以外的字符(&&[^.],使用字符类减法)。

查看 Kotlin demo :

println("a-b)h.".replace("""[\p{P}\p{S}&&[^.]]+""".toRegex(), ""))
// => abh.

关于android - 正则表达式删除除句点外的所有特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63882990/

相关文章:

regex - 替换文件中的文本+可选换行符

正则表达式匹配 JCL 工作卡或整张卡的最后一行

kotlin - 减少嵌套循环的可能性

android - 使用 KOIN 设置 WorkManager

java - 多个身份验证提供商 Android Firebase

android - 启动 Intent 服务并关闭应用程序

java - 如何用字符更改按钮文本?

正则表达式从最后一次出现的字符串开始

android - 如何在android中使用kotlin获取 fragment 中的资源ID?

Android:生成指纹保护 key 后如何立即进行加密?