正则表达式将除 / 之外的所有非字母数字字符替换为空(“”)字符
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//]", "");
【讨论】:
以上是关于正则表达式将除 / 之外的所有非字母数字字符替换为空(“”)字符的主要内容,如果未能解决你的问题,请参考以下文章