我需要将类似于“¼杯糖”的字符串修改为“杯糖”,这意味着用“”替换所有分数符号。
我已经提到了这个post并设法使用此行删除¼:
itemName = itemName.replaceAll("\u00BC", "");
但是如何替换那里的每个可能的分数符号?
答案 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])?)", "")