正则表达式将除 / 之外的所有非字母数字字符替换为空(“”)字符

Posted

技术标签:

【中文标题】正则表达式将除 / 之外的所有非字母数字字符替换为空(“”)字符【英文标题】:Regular Expression to replace all non alphanumeric characters except / to empty("") character 【发布时间】:2013-11-11 08:36:16 【问题描述】:

我想要一个正则表达式将除“/”之外的所有非字母数字字符替换为“”(空字符)。

这就是我所做的:

LibString.replaceAll(token, "[^a-zA-Z0-9]", "");

而LibString中的函数实现是:

public static String replaceAll(String source, String regex, String replacement) 
    
        Pattern pattern = new Pattern(regex, 0);
        Replacer replacer = pattern.replacer(replacement);

        String result = replacer.replace(source);
        return result;
      

我给的字符串是:

“法国对汤加”。法国国际橄榄球闪电战 H/L 2013。 法国国际橄榄球比赛的亮点。

预期结果:

单词列表:

法国 对比 汤加 法语 国际 高/低 ..等

实际结果是:

'法国 [空] 汤加。 .法语 [空]

请指教。

请注意:我正在使用具有 JVM 1.2 的系统,因此无法使用任何 util.regex 或字符串替换所有类型的方法。 我已将 jregex.jar 导入到我的项目中以使用正则表达式。

【问题讨论】:

您的代码 sn-p 中的 HashSet 到底在哪里? 为了尽快获得更好的帮助,请将您的代码发布为SSCCE,以证明您的问题。这允许用户复制/粘贴和重现您的问题。 replaceAll 类中已有 replaceAll 方法:docs.oracle.com/javase/7/docs/api/java/lang/… 我想说忘记哈希集,它只是存储我从句子中拆分出来的单词的一种方式。 【参考方案1】:

使用正则表达式[^a-zA-Z0-9//] insted of [^a-zA-Z0-9] 转义/

 LibString.replaceAll(token, "[^a-zA-Z0-9//]", "");

【讨论】:

以上是关于正则表达式将除 / 之外的所有非字母数字字符替换为空(“”)字符的主要内容,如果未能解决你的问题,请参考以下文章

使用正则表达式替换仅保留正斜杠和数字

如何使用正则表达式替换除指定字符串之外的所有内容

js正则怎么判断一个字符串里必须包含大写字母,小写字母,数字,特殊字符? 看清楚了,是必须包含,求教

正则表达式

有没有更简洁的方法来删除非字母数字字符并替换空格?

从 PHP 中的字符串中删除除字母数字字符之外的所有内容