从字符串中删除所有分数符号,例如“¼”和“ 1/2”

问题描述

类似于¼½属于Unicode类别的分数符号Number, Other [No]。如果可以消除该组中的所有676个字符,可以使用以下正则表达式:

itemName = itemName.replaceAll("\\p{No}+", "");

如果没有,您可以始终明确列出它们:

// As characters (requires UTF-8 source file encoding)
itemName = itemName.replaceAll("[¼½¾⅐⅑⅒⅓⅔⅕⅖⅗⅘⅙⅚⅛⅜⅝⅞↉]+", "");

// As ranges using unicode escapes
itemName = itemName.replaceAll("[\u00BC-\u00BE\u2150-\u215E\u2189]+", "");

解决方法

我需要将类似于“¼杯糖”的字符串修改为“杯糖”,这意味着将所有分数符号替换为“”。

我已经提到了这篇文章,并设法使用以下代码删除了¼:

itemName = itemName.replaceAll("\u00BC","");

但是如何替换所有可能的分数符号呢?