Подтвердить что ты не робот

Удаление всех символов фракции, таких как "¼" и "½" из строки

Мне нужно изменить строки, похожие на "¼ чашки сахара", на "чашки сахара", что означает замену всех символов фракции на "".

Я упомянул об этом post и смог удалить ¼ с помощью этой строки:

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

но как мне заменить все возможные символы фракции?

4b9b3361

Ответ 1

Фракционные символы, такие как ¼ и ½ относятся к категории 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]+", "");

Ответ 2

Вы можете использовать ниже регулярное выражение для замены всей дроби пустой строкой.

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