如何在Java中获取除逗号和数字以外的字符?

如何在Java中获取除逗号和数字以外的字符?,java,regex,Java,Regex,在Java中,如何提取除逗号和数字以外的字符? *在安卓工作室 假设我有: 100₽ / $4,99 / 9,99 € / 100加元/天 9,49美元 这些信件也应该是必要的 String regex = "\\p{Sc}"; Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(a); ---> doesn't work lik

在Java中,如何提取除逗号和数字以外的字符? *在安卓工作室

假设我有: 100₽ / $4,99 / 9,99 € / 100加元/天 9,49美元

这些信件也应该是必要的

String regex = "\\p{Sc}";
Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(a);   ---> doesn't work like i want
上面的代码不适合,它不会拉出货币字母,如果它不是符号,它会写入null

我怎样才能从他们那里得到他们的货币符号(不是一次全部)(加拿大元加上加拿大元)和另一种货币美元 我明白,我需要过滤,以选择除数字和逗号以外的所有内容

请告诉我怎么做

例如: 我有一个数字和一种货币(我从google play获得的货币)


以下示例显示了从字符串中提取货币信息的regexp:

Pattern p = Pattern.compile("([^0-9\\,\\.\\s\\/]+)");
Arrays.asList("100 ₽ / $4,99 / 9,99 € / 100 CA$ / 9,49 USD", "100,00₽", "4,999.90 US$")
      .forEach(s -> {
          Matcher m = p.matcher(s);
          System.out.println(s);
          while (m.find()) {
              System.out.println("\t" + m.group(1));
          }
      });
输出


请更详细/更清楚地描述预期输出。什么是?请提供一个最低限度的工作示例:)@polygenome示例:我有一个数字,我有一种货币什么(我从google play获得的货币)我想要“我的数字”+currency=“number currency”“99”+“$”=“99$”或“99”+“USD”=“99 USD”@Lars Nielsen我写了一个例子edit@ArtemZaevsky这不是一个简单的例子:非常感谢亚历克斯·鲁登科。就像我想要的一样不客气!顺便说一句,你最初的方法还不错。问题是RUR符号₽ 尚未使用您的初始regexp
\\p{Sc}
将其识别为货币符号。以及其他一些货币,包括马纳特、拉里和比特币:)显示了一些被忽略的货币。
Pattern p = Pattern.compile("([^0-9\\,\\.\\s\\/]+)");
Arrays.asList("100 ₽ / $4,99 / 9,99 € / 100 CA$ / 9,49 USD", "100,00₽", "4,999.90 US$")
      .forEach(s -> {
          Matcher m = p.matcher(s);
          System.out.println(s);
          while (m.find()) {
              System.out.println("\t" + m.group(1));
          }
      });
100 ₽ / $4,99 / 9,99 € / 100 CA$ / 9,49 USD
    ₽
    $
    €
    CA$
    USD
100,00₽
    ₽
4,999.90 US$
    US$