【发布时间】:2026-01-16 00:30:01
【问题描述】:
我正在寻找一个正则表达式来替换除* 和\* 之外的所有特殊字符。
这个正则表达式 sn-p input.replaceAll('/[^a-zA-Z0-9*]*/', '') 转换除 * 之外的所有其他字符,但我也试图忽略 \*。
input.replaceAll('/[^a-zA-Z0-9*\\\*]*/', '') 忽略\* 但它也单独忽略\,我试图获得一个将\* 视为组合并替换休息的表达式。
【问题讨论】:
-
没有
\*这样的字符 -
假设您有类似
*,\*,\\*的文本。替换结果应该是*\**或*\*\*还是其他? -
@Pshemo 应该是
*\*\* -
不是 groovy 开发,但在 Java 中,您可能可以使用
replaceAll("[^a-zA-Z0-9\\\\*]|\\\\(?![*])", "")中的一些东西。简而言之:(规则 1)删除除a-zA-Z0-9\*之外的每个 单个字符(规则 2)仅在\后面没有 @ 时删除987654342@. -
感谢@Pshemo 的正则表达式和解释,这就是我要找的。span>
标签: java regex groovy regexp-replace