从字符串中删除所有分数符号,如“¼”和“½”

时间:2017-04-12 02:41:39

标签: java replaceall

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

我已经提到了这个post并设法使用此行删除¼:

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

但是如何替换那里的每个可能的分数符号?

2 个答案:

答案 0 :(得分:96)

¼½等分数符号属于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]+", "");

答案 1 :(得分:2)

您可以使用以下正则表达式将所有分数替换为空字符串。

str = str.replaceAll("(([\\xbc-\\xbe])?)", "")