我需要修改类似于"¼ 杯糖"的字符串为"杯糖",也就是将所有分数符号替换为""。
我参考了这篇文章,通过以下代码成功删除了"¼":
itemName = itemName.replaceAll("\u00BC", "");
但是我如何替换所有可能存在的分数符号呢?
我需要修改类似于"¼ 杯糖"的字符串为"杯糖",也就是将所有分数符号替换为""。
我参考了这篇文章,通过以下代码成功删除了"¼":
itemName = itemName.replaceAll("\u00BC", "");
但是我如何替换所有可能存在的分数符号呢?
像 ¼
和 ½
这样的分数符号属于 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]+", "");
+
运算符会导致字符集 ([...]
) 多次重复。请查阅此答案获取更多细节:https://dev59.com/FW865IYBdhLWcg3wYNZS#3850256 - Ethanstr = str.replaceAll("(([\\xbc-\\xbe])?)", "")
()
和可选项 ?
匹配? - MT0