Мне нужно изменить строки, похожие на " по¼ стакана сахара" на глаз "стакана сахара" ну, смысл заменять все символы дроби с " помощью".
Я уже ссылался на этот пост и удалось удалить ¼ с помощью этой линии:
itemName = itemName.replaceAll("\u00BC", "");
но как я могу заменить все возможные символом фракции там?
Символы фракции, как ¼
и ½
относятся к категории Юникода количество, других [нет]
. Если вы согласны с исключения всех 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]+", "");
Вы можете использовать ниже regex для замены всех фракции с пустой строкой.
str = str.replaceAll("(([\\xbc-\\xbe])?)", "")