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